windows - Windows 上的 Perl : Problems with Encoding

标签 windows perl encoding activeperl

我的 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

关于windows - Windows 上的 Perl : Problems with Encoding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15224400/

相关文章:

windows - 我们如何在 Powershell 中的 HttpClient 对象上添加 DefaultRequestVersion?

perl - 在什么情况下 "unless"与 "if not"不同?

python - 运行 Django 开发服务器时出现 UnicodeDecodeError

string - Python 对 shell 字符串的处理

java - 回车问题从 Java 解码 Base64 并发送到浏览器

windows - S-1-5 的 ConvertStringSidToSid(NT AUTHORITY 组)

windows - 使用powershell查找设置为唤醒电脑的计划任务

windows - 如何使用 Delphi 播放单音或自定义波形?

arrays - 根据值对 HoHoA 进行排序和比较

json - 识别 CouchDB 中的重复项