Hi Nicholas

With reference to my previous mail on encoding module

use Encode;
$string = "a";
$enc_string = encode("iso-8859-16", $string);
print "\n String: $string\n";
print "\n enc_string: $enc_string\n";

a)How different are those ext/Encode/def_t.c and
ext/Encode/Byte/byte_t.c  files in EBCDIC and ASCII platforms?
b) Why is it when I copied the above .c files from ASCII platform to
EBCDIC worked for any codepage except  IBM-1047 codepage on EBCDCI
platform?

I stepped in the code and saw that in encengine.c the e->seq is
different on both the platforms. I guess that the structure is not
properly set. Please throw any thoughts you have!

-Sastry

On 8/9/05, Sastry <[EMAIL PROTECTED]> wrote:
> 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
> like Linux.
> 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!
> 
> -Sastry
> 
> 
> 
> On 8/9/05, Nicholas Clark <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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.
> >
> > Nicholas Clark
> >
>

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to