perl - 在perl中转换jis解码/编码

标签 perl encoding decode encode shift-jis

当我尝试解码一个 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

http://en.wikipedia.org/wiki/Code_page_932

关于perl - 在perl中转换jis解码/编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5521737/

相关文章:

perl - 如何使用 Perl 打开 Unicode 文件?

encoding - UTF-8 现在是非 ASCII 字符二维码的首选编码吗?

json - Swift Json 如何在没有顶级 key 和自动生成的 key 的情况下进行解码

c# - 将字符串从 Javascript 编码和解码为 C# - 不起作用

Perl/TCL 中的正则表达式

mysql - gtk2 和线程中的段错误

ruby - 在 ruby​​ 中从 iso-2022-jp 转换为 UTF

javascript - decodeAudioData HTML5 音频 API

perl - 标量在 <script> 处找到运算符预期的位置

Perl:2GB 后的索引/rindex?