Win2000環境にてSHIFT-JISのファイルをnkf32.exeを使用して
文字コード変換を行うと一部の文字で変換できないものがあります。
このように行いました。
nkf32 test_sjis.txt > test_euc.txt
変換できていない文字は「_」という文字です。
文字化けしないようにするにはどのようにすればよろしいでしょうか?
また、sjis→eucの変換にて文字化けしてしまう文字を検出するようなツールはございませんでしょうか?
>>0
>変換できていない文字は「〓」という文字です。
の〓(ダンプすると FA 5F になっていた)は、「金圭」を一つの文字にしたような文字でしょうか。
この字は、JIS X 0208には含まれていませんが、JIS X 0212(補助漢字)に含まれている(67区88点)ので、EUC-JPでは8F E3 F8になります。
後ほど、別に詳細な投稿をします。
はい、「金圭」をひとつの文字にしたような文字です。
Shift_JIS は JIS X 0201 + JIS X 0208 ですから、そもそも両者に含まれていない「金圭」という文字は Shift_JIS では表現できません。
JIS X 0208 に含まれていない漢字等を表現するため、各計算機メーカが Shift_JIS で使用されていない領域を使って漢字を増やそうとしました。メーカが好き勝手に追加していきましたが、ネット時代になって、それぞれのコードが互換でなく、不便であることに気付きました。現在では、JIS X 0208に勝手に文字を追加することは禁止されています。
EUC-JPは ASCII + JIS X 0208 + JIS X 0201 Kana + JIS X 0212 なので、EUC-JPでは「金圭」という文字を表現することができます(8F E3 F8)。
Shift_JIS に入っていない文字を Shift_JIS → EUC-JP の変換フィルタを使って変換しようとするのは無理でしょう。「機種依存文字」をEUCに変換するツールを当たってみるのがよいでしょうか。
#機種依存文字、というのも変な名称ですが
ひじさんご回答ありがとうございました。
文字コードについていろいろなサイトで読んでみましたが
奥が深いなーっ!と感じました。
とても参考になりました。
ありがとうございます。