Hi Nicholas Clark
I agree that it is supposed to print the numerical equivalent 97.
I attempted to see if there is any bug in the encode module.
Surprisingly, I noticed that there are two .c files in
ext/Encode/def_t.c and ext/Encode/Byte/byte_t.c which are generated
using enc2xs. They are different on EBCDIC platform and ASCII platform
I just replaced those files from linux onto EBCDIC which gave the
expected result '97'
Please let me know if those .c files should be the same on both the platform!
On 8/9/05, Nicholas Clark <nick(_at_)ccl4(_dot_)org> wrote:
On Tue, Aug 09, 2005 at 10:58:48AM +0530, Sastry wrote:
I get 73 printed on EBCDIC platform. I think it is supposed to print
129 as it is the numeric equivalent of 'a'.
On 8/8/05, Nicholas Clark <nick(_at_)ccl4(_dot_)org> wrote:
On your EBCDIC platform, what does this give?
It prints 73
$string = "a";
$enc_string = encode("iso-8859-16", $string);
print ord ($enc_string), "\n";
It should print 97 on all platforms. Because:
$string contains 1 byte, the byte that represents 'a' in the platform's
default character encoding.
The encode call should convert from the default encoding to iso-8859-16
And 'a' in iso-8859-16 is 97.
So $enc_string should be a single byte, 97, everywhere.