MHonArc の日本語化 for v2.6.x

[序論] なぜ化けるのか?

「あいうえお」の 5 文字を iso-2022-jp で表現すると、

^[ $ B $ " $ $ $ & $ ( $ * ^[ ( B
のようになります (`^[' は ESC (0x1b) です)。

最初の `^[$B' の 3 文字が「ここから日本語 (もう少し正確には JIS X 0208-1983) が始まるよ」ということで、最後の `^[(B' が「ここで日本語が終わりだよ (もう少し正確にはここから ASCII が始まるよ)」ということです。 `^[$' の後の 2 文字ずつ ($", $$, $&, $(, $*) がそれぞれ「あ」「い」「う」「え」「お」に対応します。 したがって、「う」は

^[ $ B $ & ^[ ( B
となります。

ところで HTML では & や <, > などはそれぞれ &amp;, &lt;, &gt; と書かねばなりません。 そのため、MHonArc を含む HTML filter の類はこの変換を行なおうとします。

しかし、単純に変換したのでは (つまり日本語化されていない場合)、

^[ $ B $ & ^[ ( B   (=「う」)
も、
^[ $ B $ & a m p ; ^[ ( B
と変換されてしまうことになります。 これは「う瘢雹」の 3 文字に対応します。

これが「化ける」原因 (の一部) なのです。

iso-2022-jp 等の詳細については

などを参照して下さい。

なおこの文章では、charset=iso-2022-jp と言っておきながらそれ以外の charset になっている、といったような場合については扱っていません。



Last modified: Sat Jun 11 07:40:32 JST 2011