I am using windows XP and Perl5.8.1
Thanks,
Neelima
--- John Delacour <[EMAIL PROTECTED]> wrote:
> At 12:01 pm -0800 21/11/03, Neelima Bandla wrote:
> > yes I got the same thing as well.
> >
> > ������������
>
> That's not what I got, but the Kanji. You may have
> seen that in my
> email because your mailer (especially if you are
> using Web mail)
> cannot interpret and display UTF-8. That's why I
> stressed at the
> beginning of the message that the charset in the
> headers was UTF-8.
> In other words the resulting file name here was four
> Kanji.
>
> If I had time, I'd try what your doing on Windows
> but I only have NT4
> and I'm not sure how it copes with Unicode file
> names.
>
>
> > my $utf8_str1 = pack("U*", @array);
> > my $utf16_str1 = encode("UTF-16" , $utf8_str1);
> > open(FD, ">$filepath\$utf16_str1") or die("$!");
> > close FD;
> >
> > Now this is what I have done,since windows
> encoding is
> > in UTF-16, I used the encode function to convert
> into
> > UTF-16, Now it is refusing to create the file
> with
> > invalid argument
>
> Here again I'm not sure what is required and whether
> you need to
> start with the Byte Order Mark U+FEFF or U+FFEE.
> Someone who uses
> Windows 2000+ will need to advise you here. You did
> not mention what
> system you're using or what version of Perl.
>
> If I run this script, which I find a more convenient
> way of doing the
> same thing if you're starting with raw hex codes, I
> get the string as
> UTF-16 with the BOM U+FEFF and that's fine in my
> envornment:
>
> use strict ;
> use Encode ;
> my ($l, $r, $text) = ( "\\x{", "}") ;
> my @x = qw(
>
> 5f89 623f 5f89 20 623f
>
> );
> for (@x) {
> $text .= "$l$_$r"
> }
> my $UTF8 = eval qq~"$text"~ ;
> my $UTF16 = encode("UTF-16" , $UTF8) ;
> print $UTF16
>
> On the other hand, if you're starting with raw hex
> codes you don't
> need to use Encode at all, just print the BOM
> followed by the two
> bytes separately. If you run these two scripts
> together you will get
> your four Kanji printed twice, but the second method
> is far simpler
> and does not need the Encode library; it is
> therefore also faster.
> As to how your operating system deals with the data,
> I'm not
> qualified to comment but I'm sure the majority of
> people on the list
> are.
>
> What's wrong seems not to be your output but the
> interaction between
> that output and the environment you're working in.
>
> use strict ;
> use Encode ;
> #### LONG METHOD ####
> my ($l, $r, $text) = ( "\\x{", "}") ;
> my @x = qw(
>
> 5f89 623f 5f89 20 623f
>
> );
> for (@x) {$text .= "$l$_$r"}
> my $UTF8 = eval qq~"$text"~ ;
> my $UTF16 = encode("UTF-16" , $UTF8) ;
> print $UTF16 . "$/$/" ;
>
> ###SHORT METHOD####
> my ($l, $r, $text) = ( "\\x{", "}") ;
> my @x = qw(
>
> FE FF 5f 89 62 3f 5f 89 20 62 3f
>
> );
> for (@x) {$text .= "$l$_$r"}
> print eval qq~"$text"~ . "$/$/"
>
> JD
>
>
>
>
>
>
>
>
__________________________________
Do you Yahoo!?
Free Pop-Up Blocker - Get it now
http://companion.yahoo.com/