最近の記事

スポンサードリンク

月別アーカイブ

『文字化けVistaをどうしたものかと考える』の話。(2)

 ボタンを掛け違っている。
 やはり、それが正解のようでした。
 直感的にMSX時代の文字化けのようだと思ったのも正解。
 どうやら残った文字化けの原因は、

 エスケープシークエンス。
 Escape sequence
 訳すれば、

 「回避順序法則」

 それはASCIIとJISを見分けるための鍵。
 アスキー!!
 伝説の香りだ。
 アスキーコードはいまでもUNIXなんかで使われている。

HALO3

(注・アスキーコードは(株)アスキーが作ったわけではない。American Standard Code for Information Interchangeの略。1963年ANSI(米国規格協会)により制定。すでにASCIIのCがコードの略なのにアスキーコードというのも妙なことです) 

 で、ASCIIとJISは両方同じ7バイトなのに同じ時代に使われているから、同じ7バイトだけど二つは違うモノなんだよと知らせるために「回避順序法則」の魔法を使っている。
 むろん、魔法の詠唱は画面に表示されたり愚鈍な人間どもに悟られたりするものではない、そっと秘密の世界で唱えられる、ビットの世界の魔法詠唱。「回避順序法則」魔法の決まり事として、「テキストの一番最初はASCIIで始まり、行の終わりではASCIIまたはJISに戻し、テキストの最後ではASCIIに戻す」というものがあり、この決まり事ゆえに、私のケースで発生している「行の終わりで文字化けが終わる」というのもすんなり説明がつく。これで間違いない。

 このあいだの文字化け例をいまいちど見てみよう。

・・・・・・・・・・・・・・・・・・

そのたびにはぐらかせばいいだけのこと「なんでそういうこと言うの」と言い出したらなにも言えなくなるから。言わせてたしなめれku椈氈ニ爐發靴・蕕譴浸匕い里茲Δ堀垢佑董屬覆鵑世茵帖廚箸・舛腓辰伐聴Δぅ⑤礇蕕妨・┐討・襪・發茵幣弌・・w)

・・・・・・・・・・・・・・・・・・

 ほうら問題解決。
 見えない魔法詠唱を悟って見せるとこうなっているはず。
 元の文章の隙間にエスケープシークエンス。

・・・・・・・・・・・・・・・・・・

そのたびにはぐらかせばいいだけのこと「なんでそういうこと言うの」と言い出したらなにも言えなくなるから。言わせてたしなめれ(!!詠唱!!)ば、彼もしかられた子犬のように拗ねて「なんだよ…」とかちょっと可愛いキャラに見えてくるかもよ(笑)

・・・・・・・・・・・・・・・・・・

 その詠唱を読み違えて文字化けていると仮定すれば、すべてに説明がつくのである。
 しかし、なんだってそんな場所で詠唱を?
 日本語から英語に変わったり、記号から日本語に変わったりしているわけでもない。
 だったらいったいなにを勘違いして、日本語のひらがなが並んだそのど真ん中で文字化けのきっかけになるような魔法詠唱をしてしまうのか。
 可能性としては。
 「行の終わりではASCIIまたはJISに戻す」
 このルール。
 おかしなところでリセットするから、そこから化ける。
 でもそれにしたって、なぜ化ける?
 何通か文字化けしたメールを見比べて、ついに法則発見。

 長い文章の最後で文字化ける。

 だから、たいていの場合、その直後に文章が終わってもとに戻る。つまりは……「文字化けたメールを受け取ったあなたは吉秒匠が改行なしで長文メールを熱く書いて送った相手」ということですオメデトウ(笑)。愛してる。……にしても、メールの場合、改行をこまめに入れて体裁を整えても相手の環境次第でかえって読みづらくなるため、あえて改行を入れずに長文にするのがマナーではなかろうかとさえ思っていたのですが。それがアダになっている感、満載です。具体的に数えてみた。もうまぎれもなく正解。

 改行せずに日本語で492文字書くと、493文字目で文字化ける。どうやらメールサーバーが「長すぎるわっ」と勝手に改行してしまい、そのために不必要な魔法の詠唱が行われ、結果文字化けるということのよう。だったら解決策は単純。400字詰め原稿用紙一枚分書いたら手動で改行を入れる。これでOK。いま確認した。文字化けは消えた。

 だがちょっとまて、昔からあらゆるメーラーには「長文は勝手に改行する」機能がついているものでは? というわけで「windowsメール」のそのあたりを調べてみる。

[ツール]
 ↓
[オプション]
 ↓
[メール送信の形式」
 ↓
[テキスト形式の設定]

 あった。
 「送信時に自動的に文字を折り返す」
 デフォルトで「76文字目」で折り返すことになっている。
 これはバイト数なので日本語でいうと「38文字目」で折り返されないとおかしい。
 しかし、まったく折り返されている気配はない。
 調べてみた。
 どうやら先代「Outlook Express」でも同じようにこれは設定しても機能しない機能だったという。へー。「Outlook Express」使ってなかったから知らなかった……って!! 設定しても機能しない機能って!!! それが最先端「windowsメール」に機能しないまま継承されているって!!!! バカすぎる。レジストリいじってなおすか。いやしかし確かに38文字で勝手に改行というのもウザい。設定でもっと文字数を上げられればいいのだが、せいぜい50字くらいまで。私の使っているサーバーが400文字まで余裕で処理できるのに不必要な改行を入れるのもまた読みにくいだろうし(もともとこの機能は数十文字までしか処理できないサーバーがあまたあったからのものなので、あいてのサーバーがどの程度処理できるか、というのも確かに重要なのですが)。

 結論。
 windowsメール使うときは、自分で適度に改行を入れること。
 なんだかなあ、バカっぽい結論だ。
 とりあえず、日本語で数千字改行せずに書いたメールを自分で自分に送ってみるといい。文字化けていたら、それがあなたの使うサーバーの限界。ていうかそんなに世間で問題になっていないのは、普通に友人宛のメールで原稿用紙何枚分も殴り書く、私の作法がおかしいってことなんだろう。自重しましょう。

 でも、Vistaに変えるまで、400字オーバーの長文もいっぱい書いていたが文字化けしていなかったんだけどな……そのあたり、やっぱりちょっと謎が残ったままなのでした。

(ところでこの「windowsメール」という名称がくせものだと今回よくわかった。「windows」も「メール」もあまりにありふれた単語なので「windowsメール」についてなにかを検索して調べようとするさい、非常に検索精度が下がり手間なのだ。使い勝手もあまりに遠い話なので忘れていたが自分がなぜ「Outlook Express」を使わないことを選択したのかいろいろ思い出してしまった。すなおに「Thunderbird」使うのがいい。「2」は正式にvistaに対応したが「windowsメール」からのインポートがスムーズではない難点は残っている。vista入れたら最初から「Thunderbird」使えってことなんでしょうね)


 

TRACKBACK http://yoshinogi.blog42.fc2.com/tb.php/151-664d5151