shift-jis でエンコードされた文字列をデコードして再度エンコードしようとすると、一部の文字が文字化けします: 次のコードがあります:
エンコードqw(デコードエンコード)を使用します。 $val=; print "\nデコード前: $val"; my $ustr = Encode::decode("shiftjis",$val); print "\nデコード後: $ustr"; print "\nエンコード前: $ustr"; $val = Encode::encode("shiftjis",$ustr); print "\nエンコード後: $val";
入力で文字列 : hellosoworld を使用すると、適切にデコードされてエンコードされます。つまり、デコード前とエンコード後に上記のコードで同じ値が出力されます。しかし、次のような別の文字列を試したとき:ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ
最終出力が文字化けしました。
それは perl ライブラリ固有の問題ですか、それとも一般的なシフト jis マッピングの問題ですか? それに対する解決策はありますか?