2009年1月22日星期四

[PerlChina] Re: 如何计算utf8字符串长度,把中文字按两字符长度算?????

2009/1/22 imxae <imx365ster@gmail.com>
在javascript中看到如下函数处理页面为utf8字符串中有汉字的长度算法.这样有利于页面排版.不知道在perl中这该怎么做才好?

所以 JS 中要计算字节长度反而需要 hack,哈哈!

UTF-8 中的汉字不一定占 2 个字节。。。毕竟不是 GBK/GB2312,呵呵。

在 Perl 5.8.x 以上的版本中,可以切换到所谓的"字符语义"(默认是"字节语义")。有 N 种办法做到这一点。最常用的就是使用 Encode::decode 函数了,也许:

$ perl -MEncode -e 'print length Encode::decode("utf8", " 你好么")'
3

(这里假设你的终端是 UTF-8 的,呵呵,如果在 Windows 里的话,一般情况下,把这里的 "utf8" 改为 "gbk" 就成了),呵呵。详情请参见 perluniintro 和 perlunicode 文档 :)

Cheers,
-agentzh

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

没有评论: