--- SADAHIRO Tomoyuki <[EMAIL PROTECTED]> wrote:

> 
> On Mon, 3 Oct 2005 07:13:15 -0700 (PDT), rajarshi
> das <[EMAIL PROTECTED]> wrote
> 
> > Hi,
> > The following unicode folding test fails on EBCDIC
> > (perl-5.8.6) :
> > 
> > $a = '0178';
> > $b = '00FF';
> > 
> > $a1 = pack("U0U*", hex $code);
> > $b1 = pack("U0U*", map { hex } split " ",
> $mapping);
> > 
> > if (":$b1:" =~ /:[$a1]:/i) {
> > print "ok\n";
> > }
> 
> I guess $code is $a and $mapping is $b...
> 
> > Alternately, if $a = '0178', and $b = '00DF', the
> test
> > passes.
> > 
> > Why is this so ? 
> > Is it because \xFF as a border case ( 1 less than
> 256)
> > is not properly handled ?
> 
> 0xDF in IBM 1047 or some other EBCDIC encodings
> is ÿ (that is y with diaeresis) which corresponds
> U+00FF
> and its uppercase is U+0178.
> 
> How about $a = '039C' and $b = '00A0' or '00B5'?
> Here 0xA0 in IBM 1047 is µ (that is MICRO SIGN)
> which corresponds U+00B5 and its uppercase is
> U+039C.
> 
> > Does someone have any thoughts on the source of
> the
> > problem ?
> 
> Possibly a Unicode code value and a native code
> value may be confused.
> If the native encoding is EBCDIC, it causes much
> trouble
> compared with the case of ASCII/latin-1.
> 
> Or is the value stored in $b1 generated by
> pack("U0U*", map { hex }
> split " ", '00FF') really a representation of
> U+00FF?
> 
> use Devel::Peek and what is output from
> Devel::Peek::Dump($b1)?
> 
> ## example of usage of Devel::Peek ##
> use Devel::Peek;
> $b1 = pack("U0U*", map { hex } split " ", '00FF');
> Dump($b1);
> 
> ## example of output from Devel::Peek::Dump ##
> SV = PV(0x36572c) at 0x182c96c
>   REFCNT = 1
>   FLAGS = (POK,pPOK,UTF8)
>   PV = 0x36d9b4 "\303\277"\0 [UTF8 "\x{ff}"]
>   CUR = 2
>   LEN = 4
> 
> where PV stands for string and "\303\277" is U+00FF
> in UTF-8.
> In UTF-EBCDIC, the output should be different.
> 
Following is the output in UTF-EBCDIC for Dump($b1) :

SV = PV(0x20db050c) at 0x20dcaf9c
  REFCNT = 1
  FLAGS = (POK,pPOK,UTF8)
  PV = 0x20db5a70 "\213\163"\0 [UTF8 "\x{df}"]
  CUR = 2
  LEN = 3

Rajarshi.

> regards,
> SADAHIRO Tomoyuki
> 
> 
> 



                
__________________________________ 
Yahoo! Music Unlimited 
Access over 1 million songs. Try it free.
http://music.yahoo.com/unlimited/

Reply via email to