文字化けの原因

以前から時々ちょこちょこと弄っているテキスト変換スクリプト
当初、旧漢字旧かな変換辞書「丸谷君」を利用するためのソフトウェア「昆布茶」がOS X非対応であったために製作を思い立ったのだが、どうも此の辞書よの相性が悪いらしく文字化けを解消できずにいる。
文字コード中のエスケープ文字との一致で文字化けするShuft JISと違い、EUC-JPで書かれたコードならば文字化けは起きないと認識していたのだが、どうもそれほど簡単な話でもないようだ。
辞書自身を変換してみたところ、様々な変換ミスが出現した。主に文字化けに関っていると思われる文字は「暗」「一」「さ」など、ある程度特定できるのだが、同じ文字を含む文字列でも化けないものもあり、法則性がよく判らない。
逆方向から調査しようと、文字化けの発生が確認されている文字列をひたすら変換しつつ、辞書を少しづつ削って問題箇所を特定してみる。
するとどうやら、「気→氣」の変換が原因で「さ→ぽ(+α)」の文字化けが発生しているらしいことが判明。


原因箇所(のひとつ)は特定できたものの、文字化けを回避する方法が判ったわけではない。氣が問題だからといって氣を変換しないというわけにも行かないのだ。
根本的な(仕組みとしての)原因が判らない限り、対処のしようもない。

ははあ成程……結局2byte文字は1byte-1byteに分割されての意図せぬマッチングを防ぐ必要があるのか。具体的な技法には理解及ばぬまま猿真似して、取り敢えず乗り切る。(参考、というか丸コピ:Perlメモ)

この問題に関しては、既にAppleから原因究明のアナウンスが出ている。基本的には熱管理上の問題のようで、ヒートシンク周りの交換による修理対応。また、同問題のソフトウェア面に対処するファームウェアもリリース済み(ソフトウェア・アップデート実行のこと)。