我正在尝试编写一个程序,它将读入转换表,然后处理文件并用其他模式替换某些模式 – 以上所有的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:“宽字符串”错误所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)