On 8/9/05, Nicholas Clark <nick(_at_)ccl4(_dot_)org> wrote:
On Tue, Aug 09, 2005 at 10:58:48AM +0530, Sastry wrote:
Hi
I get 73 printed on EBCDIC platform. I think it is supposed to print
129 as it is the numeric equivalent of 'a'.
-Sastry
On 8/8/05, Nicholas Clark <nick(_at_)ccl4(_dot_)org> wrote:
On your EBCDIC platform, what does this give?
It prints 73
use Encode;
$string = "a";
$enc_string = encode("iso-8859-16", $string);
print ord ($enc_string), "\n";
73. Odd.
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.
Everywhere.
So $enc_string should be a single byte, 97, everywhere.
Can you suggest some pointers in the code to fix this?
Nicholas Clark