如何摆脱`印刷品中的宽字符?

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);

以上是关于如何摆脱`印刷品中的宽字符?的主要内容,如果未能解决你的问题,请参考以下文章

如何摆脱Android应用栏中的后退按钮

如何消除 TT 的“打印中的宽字符”警告?

如何摆脱带有可点击对象的Spannable字符串中的下划线?

Python 。如何摆脱字符串中的'\ r'?

如何摆脱字符串中的所有标点符号/符号? [复制]

如何摆脱python windows文件路径字符串中的双反斜杠? [复制]