Perl Unicode:“宽字符串”错误

Perl Unicode:“宽字符串”错误,第1张

概述我在 Windows 7上运行Active Perl 5.14. 我正在尝试编写一个程序,它将读入转换表,然后处理文件并用其他模式替换某些模式 – 以上所有的Unicode(UTF-8).这是该计划的开始: #!/usr/local/bin/perl# Load a conversion table from CONVTABLE to %ConvTable.# Then find matche 我在 Windows 7上运行Active Perl 5.14.
我正在尝试编写一个程序,它将读入转换表,然后处理文件并用其他模式替换某些模式 – 以上所有的Unicode(UTF-8).这是该计划的开始:

#!/usr/local/bin/perl# Load a conversion table from CONVtable to %Convtable.# Then find matches in a file and convert them.use strict;use warnings;use Encode;use 5.014;use utf8;use autodIE; use warnings    qw< FATAL  utf8     >;use open        qw< :std  :utf8     >;use charnames   qw< :full >;use feature     qw< unicode_strings >;my ($i,$j,$inputfile,$Outputfile,$word,$from,$to,$linetoprint);my (@line,@lineout); my %Convtable;    # Conversion hashprint 'Conversion table: opening file: E:\My documents\Perl\Conversion table.txt'."\n";my $sta= open (CONVtable,"<:enCoding(utf8)",'E:\My documents\Perl\Conversion table.txt');binmode STDOUT,':utf8';    # output should be in UTF-8# Load conversion hashwhile (<CONVtable>) {    chomp;    print "$_\n"; # etc ...# etc ...

事实证明,在这一点上,它说:

wIDe character in print at (eval 155)E:/Active Perl/lib/Perl5DB.pl:640]line 2,<CONVtable> line 1,etc...

这是为什么?我想我已经完成并实施了所有必要的处方,以正确处理Unicode字符串,解码和编码成UTF-8?
以及如何解决它?

TIA

海伦

解决方法 Perl调试器有自己的输出句柄,与STDOUT不同(尽管它可能最终与STDOUT位于同一位置).您还希望在脚本开头附近执行类似的 *** 作:

binmode $DB::OUT,':utf8' if $DB::OUT;
总结

以上是内存溢出为你收集整理的Perl Unicode:“宽字符串”错误全部内容,希望文章能够帮你解决Perl Unicode:“宽字符串”错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1239396.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存