如何摆脱`印刷品中的宽字符?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何摆脱`印刷品中的宽字符?相关的知识,希望对你有一定的参考价值。
我有/tmp/xxx
文件的下一个内容:
00000000 D0 BA D0 B8 │ D1 80 D0 B8 │ D0 BB D0 B8 │ D0 BA к и р и л и к
当我读取文件的内容并打印它时,我收到错误:
Wide character in print at ...
来源是:
use utf8;
open my $fh, '<:encoding(UTF-8)', '/tmp/xxx';
print scalar <$fh>
print的输出是:
кирилик
答案
你打印到STDOUT,这是不期望UTF8。加
binmode(STDOUT, "encoding(UTF-8)");
在已打开的句柄上更改它。
另一答案
use utf8
意味着Perl希望您的源代码是UTF-8。
open
编译指示可以更改标准文件句柄的编码:
use open qw(:std :utf8);
以上是关于如何摆脱`印刷品中的宽字符?的主要内容,如果未能解决你的问题,请参考以下文章