Re: About HTML unicode

[email protected] (John Delacour)
Newsgroups perl.unicode
Message-ID <p0620072bbdd5dc7f0560@[10.0.0.1]>
At 12:31 am +0800 3/12/04, He Zhiqiang wrote:

>Now i encountered another problem,  there are a few files contains 
>not only one charset but also two or more, for example, file1 
>contains japanese and chinese, if i use open() to  load the data 
>into memory, ord and length etc.. can't correctly work! Perhasp i 
>miss something to encode or decode the data ?
>code:
>#!/usr/bin/perl -w
>use utf8;
>open(FD, "< file1");
>while(<FD>) {
>chomp;
>print "length = ".length($_);
>}
>close FD;
>----------
>length() can not count the correct non-ASCII characters. :(

If the file is in UTF-8, then it may be in any number of _languages_ 
but it uses only one character set -- Unicode.  So far as I know "use 
utf8" is now redundant and ineffectual in Perl.  You will get the 
correct character count (6 characters rather than 18 bytes) by 
opening the file handle as utf-8 as below.

no warnings;
my $f = "/tmp/cjk.txt";
my $text = "\x{56d8}\x{56d9}\x{56da}\x{56db}\x{56dc}\x{56dd}\n";
open F, ">$f";
print F $text; # writes $text to $f as UTF-8
close F;
open F, "<:utf8",  $f;
for (<F>) {
   chomp;
   print "$_  -  Length = " . length() . $/;
}

JD
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.