Windows上的Perl:编码问题

我的Perl脚本有问题。 在类UNIX系统中,它将所有Unicode字符(如ä正确输出到控制台。 在Windows命令行中,字符被分解为无意义的字形。 有没有简单的方法来避免这种情况? 我正在使用use utf8;

提前致谢。

Solutions Collecting From Web of "Windows上的Perl:编码问题"

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