我的 Perl 脚本有问题。在类 UNIX 系统中,它将所有 Unicode 字符ä
正确地打印到控制台。在 Windows 命令行中,字符被分解为无意义的字形。有没有一种简单的方法可以避免这种情况?我正在使用use utf8;
.
提前致谢。
我的 Perl 脚本有问题。在类 UNIX 系统中,它将所有 Unicode 字符ä
正确地打印到控制台。在 Windows 命令行中,字符被分解为无意义的字形。有没有一种简单的方法可以避免这种情况?我正在使用use utf8;
.
提前致谢。
use utf8;
只是告诉 Perl 你的源代码是使用 UTF-8 编码的。
它也不适用于unix。有一些字符串不能正确打印(print chr(0xE9);
),大多数会打印“宽字符”警告(print chr(0x2660);
)。您需要解码输入并编码输出。
在 unix 系统中,这通常是
use open ':std', ':encoding(UTF-8)';
在 Windows 系统中,您需要使用chcp
找到控制台的字符页面。(对我来说是 437。)
use open ':std', ':encoding(cp437)'; # Encoding used by console
use open IO => ':encoding(cp1252)'; # Encoding used by files