2011-11-16 82 views

回答

3
use utf8; 
my $str='test ТЕСТ'; 
print length($str); 

如果你从文件中读取字符串,你应该读得UTF-8

open my $fh,'<:utf8','filename.ext'; 
+0

'我的$海峡= 'Çirçös'; 打印长度($ str);'没有utf-8也会显示一些数字 – run

+0

@run,但不一定是正确的。如果源是UTF-8,则需要使用'use utf8;'。如果源不是UTF-8,那么'$ str'只是一个字节串,'length'将返回字节数。 – ikegami

+0

不错的选择,但有时需要'Encode'模块;) – gaussblurinc

1

只需使用编码:

meAkemi:~$ perl -e 'use Encode; $_="é"; print length(Encode::decode_utf8($_)),"\n"' 
1 
相关问题