03/16(Sun) 00:57
日本語の文字化け対策
「ソ」「表」「能」など、2バイト目に「\」コード(5C)と同じシフトJISコードを持つ文字をCGI(Perl)やJavaScriptで出力すると文字化けを起こします。例えば「表示」が「侮ヲ」に化けたりするパターンです。
「表示」という文字はシフトJISコードでは 955C 8EA6 ですが、 5C が ASCIIコードでは \ ですので(PerlやJavaScriptでは \ は「次記号は強制的に文字とみなす」という意味の特殊文字)、958E A6 つまり 958E で「侮」、A6 で半角カナの「ヲ」に化けてしまうわけです。「表」だけでなく2バイト目の先頭が 5C になる漢字は全て文字化けとなります。
「シフトJISコードに 5C が含まれる漢字」(全部で40文字あります)
[―](815C) [ソ](835C) [Ы](845C) [\](875C) [噂](895C)
[浬](8A5C) [欺](8B5C) [圭](8C5C) [構](8D5C) [蚕](8E5C)
[十](8F5C) [申](905C) [曾](915C) [箪](925C) [貼](935C)
[能](945C) [表](955C) [暴](965C) [予](975C) [禄](985C)
[兔](995C) [喀](9A5C) [媾](9B5C) [彌](9C5C) [拿](9D5C)
[杤](9E5C) [歃](9F5C) [濬](E05C) [畚](E15C) [秉](E25C)
[綵](E35C) [臀](E45C) [藹](E55C) [觸](E65C) [軆](E75C)
[鐔](E85C) [饅](E95C) [鷭](EA5C) [x](ED5C) [x](EE5C)
これを防ぐには、文字化けする文字の直後に「\」を挿入します。
document.write('ソフト機能の表示');
document.write('ソ\フト機能\の表\示');
|
|