Perl 二进制模式的澄清

Perl 二进制模式的澄清,perl,Perl,我是Perl新手 我的打印语句中出现错误:“打印中的宽字符” 添加这行代码使其工作#binmode(STDOUT,“:utf8”); #binmode(STDOUT, ":utf8"); 我阅读了文档,简单地说,binmode以平台可以理解的方式编码字符 如果没有它,平台可能会期望字符表示其他内容,因为它使用的是不同的编码 还是我对binmode的理解不正确 perl有没有办法找出平台使用的编码 use open ':std', ':locale'; 我可以帮忙。但并非在所有系统上都能工作。

我是Perl新手

我的打印语句中出现错误:“打印中的宽字符”

添加这行代码使其工作
#binmode(STDOUT,“:utf8”);
#binmode(STDOUT, ":utf8");

我阅读了文档,简单地说,binmode以平台可以理解的方式编码字符

如果没有它,平台可能会期望字符表示其他内容,因为它使用的是不同的编码

还是我对binmode的理解不正确

perl有没有办法找出平台使用的编码

use open ':std', ':locale';

我可以帮忙。但并非在所有系统上都能工作。

它确实有帮助,我收到一个错误,说我的字符没有映射到ascii:)如果它使用ascii,它可能没有像应有的X_X那样工作,或者这是您所期望的吗?“X_X”是一个表情符号,而不是编码。不知道你应该得到什么编码。通常在linux机器上使用UTF-8。