[2385]
Re2: EUC変換ミス?
すい
>jis/sjis変換に使っている _mbcjistojms() が対応していないのだと思います.
>これらの文字はIBM拡張漢字と言われているもので,単純なコード変換以上のことをやらないといけないみたいです.
>
>鄕が皛に化けるのをもっと詳細に見ると,IBM拡張漢字(fb73)ではなくNEC拡張文字(ee57)の皛になります.気を利かせたつもりでどこか抜けているのか.
fa40~fc4b の領域って単純なコード変換処理で JIS に変換すると漢字として
認められないような領域になってしまうような領域だったような?(違うかも)
で、そういった類の事を一切何も考えずに、単純に機械的にコード変換処理しちゃう
から、こういう化け方をするのかと。
Shift_JIS で fa40~fc4b の範囲の文字なら ed40~eefc または 8754~879a の文字に
変換↓してから JIS や EUC に変換するようにすれば、見た目上は問題は解決すると思いますが。
|ⅰ (fa40)→ ⅰ (eeef)
|ⅱ (fa41)→ ⅱ (eef0)
|.
|Ⅰ (fa4a)→ Ⅰ (8754)
|Ⅱ (fa4b)→ Ⅱ (8755)
|.
|纊 (fa5c)→ 纊 (ed40)
|褜 (fa5d)→ 褜 (ed41)
|.
|鄕 (fbb8)→ 鄕 (ee9c)
|.
|髙 (fbfc)→ 髙 (eee0)
|.
|.
|黑 (fc4b)→ 黑 (eeec)
ただその場合、Shift_JIS → EUC → Shift_JIS の順に変換すると勝手に文字コードが
“fa40~fc4bの領域の文字” → “ed40~eefcの領域の文字”に変わっちゃう
(元に戻らない)事になりますけど良いのかな?
どうなんでしょう?