utf8 Perl编译 来启用/禁用 UTF-8(or UTF-EBCDIC) 在源代码里
简洁:
use utf8;
no utf8;
# Convert the internal representation of a Perl scalar to/from UTF-8.
$num_octets = utf8::upgrade($string);
$success = utf8::downgrade($string[, $fail_ok]);
# Change each character of a Perl scalar to/from a series of
# characters that represent the UTF-8 bytes of each original character.
utf8::encode($string); # "\x{100}" becomes "\xc4\x80"
utf8::decode($string); # "\xc4\x80" becomes "\x{100}"
# Convert a code point from the platform native character set to
# Unicode, and vice-versa.
$unicode = utf8::native_to_unicode(ord('A')); # returns 65 on both
# ASCII and EBCDIC
# platforms
$native = utf8::unicode_to_native(65); # returns 65 on ASCII
# platforms; 193 on
# EBCDIC
$flag = utf8::is_utf8($string); # since Perl 5.8.1
$flag = utf8::valid($string)
描述:
使用utf8 编译告诉perl解析器 允许UTF-8在程序文本在当前的词法范围。
no utf8 编译告诉Perl 切回到对待文本作为literal 字节在当前的词法范围。
(在EBCDIC 平台,技术是允许UTF-EBCDIC, 不是UTF-8.
但是这个区别是学术的,因此在这个文件术语UTF-8是用于两者)
不要使用这个编译除了告诉Perl你的脚本是用UTF-8写的。
下面的描述是直接使用没有use utf8:
因为它不可能可靠的告诉UTF-8 从本地的8位编码,
你需要一个字节顺序标记在你的源代码的开始,或者use utf8,来指导perl
当UTF-8 变为标准的源代码格式,这个指令会有效的 变成一个 no-op
也可以查询-C切换的影响和它的cousin, PERL_UNICODE 环境变量
启动utf8程序有下面的影响:
在源文本中的字节不是以 ASCII character set
会被对待一个 literal UTF-8 sequence的一部分。
这包括很多的literals 比如标识符名称,字符串常量,和恒定的正则表达式模式。
注意如果你有non-ASCII, non-UTF-8 字节在你的脚本
use utf8会不高兴。因为你需要有这样的字节在use utf8,
你可以禁用这个程序直到最后的块(或者文件,如果在顶层) 通过使用no utf8
有用的函数;
下面的函数是定义在e utf8:: package,你不需要say use utf8 来使用那些
实际上 你不应该say 除非你真的需要UTF-8源代码
perl use utf8
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章