Perl中在Windows上:与编码问题(Perl on Windows: Problems wit

2019-08-17 07:46发布

我有一个问题,我的Perl脚本。 在类UNIX系统中,打印出所有Unicode字符像ä正确的控制台。 在Windows命令行中,字符被打破,毫无意义的字形。 有没有一种简单的方法来避免这种情况? 我使用的是use utf8;

提前致谢。

Answer 1:

use utf8; 简单地告诉Perl源使用UTF-8编码。

它不工作在UNIX上无论是。 有一些字符串,将无法正确打印( print chr(0xE9); ),以及做最会打印出“宽字符”警告( print chr(0x2660); )。 您需要解码的输入和编码您的输出。

在Unix系统中,这是usuaully

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


文章来源: Perl on Windows: Problems with Encoding