【发布时间】:2011-08-23 09:29:14
【问题描述】:
我的 perl 脚本带有一串 UTF-8 字符,可以是任何语言。我需要将每个单词的第一个字符大写,并将单词的剩余字符转换为小写。这必须在将文本保留为 UTF-8 格式时完成。
当文本仅包含拉丁字符时,以下似乎工作得很好
$my_string =~ s/([\w']+)/\u\L$1/g;
我怎样才能让它在 UTF-8 字符串中工作?
【问题讨论】:
-
Perl 没有 UTF-8 字符串。它有以 Unicode 为单位的字符串,也有以字节为单位的字节字符串。您在那里编写的内容在当前版本的 Perl 中已经可以正常工作。您可能需要像
use v5.12、use v5.14或use feature "unicode_strings"这样的东西在编译单元的顶部才能使其工作,但您不需要其他任何东西。 -
谢谢。我忘了提到我正在使用的网络服务器仍然有 5.8 perl,所以很遗憾我没有这些建议。