当我尝试解码一个 shift-jis 编码的字符串并将其编码回来时,一些字符出现乱码: 我有以下代码:
use Encode qw(decode encode); $val=; print "\nbefore decoding: $val"; my $ustr = Encode::decode("shiftjis",$val); print "\nafter decoding: $ustr"; print "\nbefore encoding: $ustr"; $val = Encode::encode("shiftjis",$ustr); print "\nafter encoding: $val";
当我在输入中使用字符串 : helloソworld 时,它会被正确解码和编码回来,即在上面的代码中解码之前和编码打印之后打印相同的值。 但是当我尝试另一个字符串时,例如:ⅠⅡⅢⅣⅤⅤⅥⅦⅧⅨⅩ
最终输出出现乱码。
它是 perl 库的特定问题还是一般的 shift jis 映射问题? 有什么解决办法吗?
最佳答案
您只需将 shiftjis
替换为 cp932
。
关于perl - 在perl中转换jis解码/编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5521737/