[ Return Home ] [
It'sMine ]
文字化け解読ツール Version 2.0.8
(Oct.16.2005 V2.0.8版 を正式版としました。)
日本語でメールを書いたり、受けたりしたのにも関わらず、受信したメールが化けていてまったく 読めなかった経験があります。しかし、よくそのメールを見ると何か規則正しくコードが並んでいて、
複雑なメールシステムのどこかで処理が正しく行われなかったと思われることが多々あります。
こういった読めないメールほど重要なことが書いてあったりすることがよくあるため、何とか救済できないかと 思いこのプログラムを作りました。
最初のバージョンを友人に配ったりしているうちにいろいろな文字化けのパターンがあることが わかってきました。また、文字化けしている状態でメーラーが勝手に改行コードを入れて、
貴重な解読するのに必要な構造が分断されてしまっている場合もあり、意外と難しいということを 思い知らされました。
【V2.0.6版では URLエンコードされた文字列をデコードする事もできるようになっています】
その結果のソフトウエアが以下にあるものです。
注 本ページ内では漢字コードに付いての予備知識が有ったほうが理解しやすいと思います。最後に書きましたLinksを参照してください。
(1) 動作環境
Windows95,98,ME または WindowsNT4.0,2000,XP 及び後継OS
Win32の標準的な機能しか使っていないません。
ダウンロードしたファイルは 実行形式ファイルが一つきりでそれを適当なディレクトリに入れて使ってください。
(2) 基本機能
メイラソフト等で文字化けパターンを見つけたら、その部分をクリップボードにコピーしてから このプログラムを立ち上げてください。自動的にクリップボードから取り出した後に読める文字に解読し
それを表示します。
(V2.0.6版では、ドラッグ&ドロップにも対応しました。)
とはいっても、化け方は千差万別でうまく行かない場合があります。その時には、強制変換ボタンがありますので それをクリックしてみてください。
画面イメージ (66KByte)
どのような文字化けに対してMBaker2が有効かどうかは、 「文字化け例とMBaker2をつかった解読方法」
を参照してください。
(3) ダウンロード
- 記事 : このソフトの中で何か不具合を見つけた方はご一報いただけるとうれしいです。 また、解読できない文字化けを見つけた方で、その文章を私に送ってもかまわないと
思われた方、それを送っていただけると、このソフトを今後より解読精度の高いものにできると思いますのでお願いいたします。
送っていただいた文章を公開する事はありません。しかしながら、文字化けメールの解読サービスのようなものは行っておりません。プライバシーにかかわるような内容が含まれていると思われる文章はメールしないでください。
(4) 相互リンク
(5) その後
- (U) 2005/10/16
- V2.0.8 正式版をアップロードしました。
(1)EUC1の変換精度を向上させました。
- (2)シフトJISの1バイト目補完機能のツールバーを新設しました。
- V2.0.7-2β版にも既に入れてありましたが、今回正式版となります。
1バイト目が欠落した場合を想定しています。この場合、1バイトめが文字化けとなる前の値はまったくわからないので、数字またはひらがなに変換されるようにしています。漢字に変換させたい場合、まずはこの機能を使って補完させます。その後漢字と思われる部分1文字分を選択後右クロックを行います。すると、シフトJISの漢字の候補が現れるので適当を思われる漢字を選択します。したがってこの部分は手動での復元と言うことになります。
- (T) 2005/5/15
V2.0.7-2 β版をアップロードしました。
(1)MBaker2内部の表示文字列を選択後にマウスの右クリックで、その文字列の部分的な解読を試みます。(このバージョンでは JIS2ボタン相当)
- (2)また1文字のみ選択して右クリックすることで、Sift-JISのコードでBit欠落した場合の候補一覧を表示します。
- (3)自動解読で、メールのタイトル行の次行がタイトル行にくっついてしまう現象が発生することがあるのでその対応を行いました。
- (4)Ctrl-Aキーで全選択できなかったのをできるようにしました。
- (5)Tool-Barの表示の有無を保存するようにしました。
- これはβ版ですが、問題が無ければ正式版となります。
(S) 2001/6/5
V2.0.6β版 V2.0.6正式版としました。
- (R) 2001/2/7
V2.0.6β版をアップロードしました。変換効率はほとんど変化が無いのですが、全体的な使い勝手を向上させました。
(1) EUC変換で、確保メモリを超えてアクセスしてしまう可能性がありこれを修正
(2) 全ての変換で行末の処理をWindowsの方式に強制変換する機能を追加
(3) Tools 内に MSBを全て設定する機能を追加
(4) UTF-7/8変換の自動判定機能でミス判定する場合がありこれを修正
(5) エクスプローラからファイルをドラッグ&ドロップして表示できる機能を追加
(6) OLEクリップボードに対応 (IEやアウトルック等から文字列をドラッグ&ドロップできる機能を追加)
もちろんV2.0.4実験版で入れておいたURLデコードの機能はそのまま入っています。
アウトルック(含むExpress)などを使われている方は(6)が使えると文字化けした部分の指定がより簡単になるのでお試しください。
その他のメーラも同様だとは思いますがテストしていないので分かりません。
このバージョンで特に問題が無ければ、正式版に昇格させます。
次の変更予定は(Q)に書きました外部ソフトからコールできるようにする事です。
- 技術情報: MSVC++V6(英語版)でコンパイルし直しました。それに伴いToolBarの形状をフラットなものに変えてみました。
- Text表示の部分は単純なCEditを使っていますので、Windoews95系列では表示できる文字数に上限があります。
- RichTextを使えば良いのですが、プログラムをあまり大きくしたくないと言うところもあり、今のままで行きそうです。
- 今年の末にでると言うWindowsXPではどうなるのでしょうか?
(Q) 2000/11/27
MBaker2の変換の部分だけをDLLに独立させて、ほかのプログラムからも利用可能にして欲しいというメールをいただきました。
利用機会が増える事は良い事なのですが、DLL形式にすると、いままで、EXEファイル一つで良かったのが2つに別れて しまい、初心者の方とか、本当にこのソフトを使いたい方に一つハードルを作ってしまう事になるので、
現在どうしたらよいのか考えているところです。このような機能を希望する方がたくさんお見えならば、 ほかの方法も考えられると思われるので、意見、要望等ありましたらメールをください。
(その方からは、コンパイルパラメータでEXEとDLLを作り分ければ良いといわれましたが、私としてはやりたくないのです。)
それと、
別の方から、Subjectの文字化けがMBaker2で解読できないと言うメールをいただきました。
調べてみると、=?iso-2022-jp? で始まっているのも関わらず、 この「=?iso-2022-jp?」も含めてすべてのByteの最上位Bitに1が立っているという文字化けでした。
「MSB落ち」ならず「MSB立ち」ですね。MBaker2V2.0.3では、ToolBarのボタンだけでは解読できません。
まず、Toolsメニューの 「Characters->Mask with 0x7F」ですべてのMSBを落としてから、
Editメニューの中のCopyAll(またはCtrl-A)で再度クリップボードにいれなおしてから、 Autoボタンを押すとこの文字化けを解読できます。
(P) 2000/10/11
V2.0.4 実験版で URLエンコード された文字列をデコードできるようにしましたが、URLエンコードについて調べているうちに
このURLエンコードされた文字列でさえ文字化けしている事があって、通常のデコードソフトでデコードできないことが あるということがわかりました。(こうなる確率は非常に低いとは思いますが。)
この場合は、いったん Autoモードで 文字化けを戻しておいてから、ツールバーのALL (Edit Menuの CopyAll)
を押して、戻したものをすべてクリップボードにいれなおしてから、CGIボタンを押してください。 これで、正しくデコードできるはずです。
(こういうことをできる事がMBaker2のセールスポイントになるのでしょうね。)
(O) 2000/9/22
V2.0.4 実験版をアップロードしました。
Web上のフォームから書き込まれた日本語のコードはURLエンコードされて届くので、何が書いてあるかは、デコード してみるまで分かりません。これに対応してみました。
URLエンコードは決して文字化けではありませんので、このMBaker2で取り扱う範疇ではないと思っておりましたが、 MBaker2で取り扱えるようにして欲しいというメールをいただきまして、作ってみました。
区切り文字で、改行するようにしました。変換後の結果は、テキストファイルとしてセーブできます。 MBaker2はほかにDLLファイル等を必要としませんので、ちょっと見てみたい時には有用なツールになるでしょう。
(N) 2000/7/21
V2.0.3を正式版としました。
プログラム的には全く変っておりません。
次のバージョンアップに向けて、項目を洗い出し中です。
(M) 2000/6/6
V2.0.3β版をアップロードしました。まだベータのままですが公開してしまいました。
V2.0.0からの変更内容は、
(1) HTML型の文字化けの修復確度をあげました。((L)にも書いたとおりです)
(2) UTF-7のデコード機能を追加しまして、UTF-8、UTF-7の両方ともサポートするようになりました。
(3) V2.0.0では、=?utf-8?B? で始まるSubjectが解読できませんでしたが、 =?utf-8?B? 及び
=?utf-7?B? の両方をデコードできるようにしました。
(4) MSB落ちをシミュレートする機能、半角仮名を全角仮名に変換する機能、を追加しました。
(5) EUC1で行末のコードがUNIXタイプの場合にWindowsタイプに変換するようにしました。
バグの指摘、解読できない文字化けの指摘は大歓迎ですので、いろいろ指摘していただけるとうれしいです。
(L) 2000/5/10
- 最近、HTML型の文字化けメールについて相談をいただきまして、添付されてきた文字化け例は、MBaker2で全く解読できませんでした。
ヨーロッパ圏の文字(ウムラウトのついた文字など)とかは、8bitの最上位Bitを使った表現するのですが、 シフトJISのコード群をこれと間違えられてHTMLに変換されてしまう事があることが分かりました。
これに対応したバージョンを作成中です。
ただ、受信した時点で情報の欠落が発生しているため完全にもとの状態に戻す事はできませんが、何が書いてあるのかは推測できるようにはなります。
現在ベータテスト中ですが、ついでに =?utf-8?B? で始まるタイトル文字列の文字化けの自動解読ができるようにしようと思っています。
- (K) 1999/10/14
Yahoo の無料メールサービスについて、文字化けする等のメールを複数の方からいただきました。現在のところわかっているところを書きます。
(以下の文章は特にYahooに問い合わせたものではないので、間違っているかもしれません。)
(J) 1999/10/4
V2.0.0 をリリースしました。
V1.8.0 から比べても強力になっています。どうぞ使ってやってください。
(I) 1999/9/24
V2.0に向けてベータ版ができました。内部のプログラムを全面的に書き直しました。V1.0からV1.9までの機能追加で、つぎはぎだらけのプログラムをやっと整然とした形にまとめる事ができまして、やれやれといったところです。
まだ少し機能を追加したくて、ベータ版といいながらもまだプログラムを追加しようとしています。
実はV1.9から入れてあったのですが、日本語に対応していないWeb型のメーラでの文字化けを直す HTMLボタンを追加しています。
「漢字コードの話」へのリンクを快く了解していただきました 配島様ありがとうございました。
(H) 1999/8/9
V1.9 を作りました。自動判定の処理を強化しました。Shift-JISで送り出されたメールが quoted-printable
で見えてしまうものも自動判断するようにしました。
また、もう一つの大きな変更点としては、最近のメーラの機能なのですが半角カタカナを入力してしまっても全角カタカナに自動的に変換して送り出すことが出来るものが有ります。
この場合、EUC文字化けで半角カタカナに化けてしまったメールをほかの人にそのまま転送した場合、この半角カタカナの部分がすべて全角カタカナになって送られます。
そこで、V1.9のMBakerでは、EUCボタンが押された場合には、自動的に全角カタカナを半角カタカナに戻した後に修復処理を走らせるようにしました。
これが意外と上手く動きます。 V1.9で試してみたい方、メールをいただければおり返して送付いたします。
(G) 1999/6/21
V1.8をダウンロードできるように登録しました。V2.0になったらアップロードしようと思っていたのですが、いろいろな方から文字化け例をいただくうちに自分が思っていた以上に複雑である事がわかってきました。
現在既に次のバージョンを準備中ですが、それでもまだV2.0への道のりは長そうです。
ということで、中間の成果であるこのバージョンを公開いたします。
あと、V1.8でも解読できない文字化け例がありましたらメールをいただけるとうれしいです。
今まで文字化け例を送っていただいた方も、社外秘などの理由で一部分のみを送っていただいく場合が多くこれでも、データがそろってくるとパターンを見つける事ができて、次のバージョンへつなげる事が出来ました。
最近、シフトJISのうち下位1Byteのみが受信されるという文字化けのパターンがある事が分かりました。
情報量が半分になってしまうので、現在のMbakerの機能では解読不能です。
(カタカナがならんでいるように見えて最初はEUC文字化けかと思うのですが、EUCで強制変換しても読めません)
解読補助ツールとしてうまくプログラム化できればよいのですが今のところは上手い方法が見つかりません。
(F) 1999/4/26
V1.8ができました。 新しい文字化けのパターンを送っていただいた Kaori さんどうもありがとうございます。 送信側が何らかの原因でシフトJISでメールを送出してしまったことに加えて中継の過程で各データの最上位Bitがクリアされてしまった文字化けが見つかりました。この場合自動で完全な復元は出来ませんが、アルゴリズムを変えたボタンを用意しました。
ユーザーが前後の文脈から正しい方を選ぶ形になります。(Mbakerは復元補助ツールと言う事になります)
本来はメールの送出側の設定を確認する必要があります。
これからはメールをいただいた方にはV1.8をお送りいたします。
(E) 1999/4/20
Hotmail が日本語に対応しまして、文字が化けないようになりました。画面の表示文字もすべて日本語にする事ができるようになったのはたいしたものです。
(D) 1999/4/1
EUCの文字化けの解読方法を2パターン用意しました。(V1.7)
技術情報: MSVC++V5(英語版)でコンパイルし直しました。今は既にV6が出ていますが、予算の関係で・・・
英語版でもちゃんと日本語を扱えますし、SJIS<->JIS変換といった基本的な関数はライブラリに登録されています。(HELPもある)
MSVC++V6の英語版の方は既にServicePack2が出ているので落ち着いてきたでしょう。いつかこちらに切り替えたらまたコンパイルし直します。
MFCのライブラリ群はスタティックリンクしています。ダイナミックリンクのほうが良いとは思いますが、このツールを使用される方はパワーユーザーで無い方もおられると思いまして、「確実に動作する」「Exeファイルが一つのみで良い」といった利点が「サイズが大きくなる」という欠点よりも優先されると思いました。
また、これは本来の使い方ではないのですがPGPの解読結果の表示用にも使えます。というのは、暗号化される前の状態がSJISでない場合もあり、この場合、メーラ上はただのバイナリファイルですのでメイラがやってくれていた文字コード変換を自分で行わなければ行けません。PGPは変換結果をクリップボードに置く事が出来るので、この後Mbakerを立ちあげればOKです。
(C) 1998/8/10
Hotmail という、フリーの WEBでメールを見る形式の メールサーバーで 日本語の受信が化けるというメールをいただきました。
インターネットエクスプローラでいろいろ試してみた限りでは100%再現します。 全日本語文の半分程度が化けるという変な化け方で、この化けたものは
Mbaker で復元できません。 しかし、以下の方法で読む事ができるようになります。
1) インターネットエクスプローラの日本語コードの設定を SJIS かまたは EUC にする。
2) こうすると画面の日本語表示が完全に文字化けしてしまいます。
3) しかし、この完全文字化け状態の文字列は Mbaker で解読可能ですのでクリップボードにコピーした後に Mbaker
を起動してください
(Mbaker は V1.0で解読できます)
Netscapeでも同じ現象が発生しますので、同様の手順で解読してください。
もっと簡単な方法を知っておられる方ご一報いただだければ幸いです。
(B) 1998/7/2
新しい文字化けのパターンが見つかりました。通知してくださったかたありがとうございました。 以降、メールしてくださった方には、V1.6を送付いたします。(これもまだ
β版です)
(A) 1998/6/1
現在、V1.5を評価中です。 多重文字化けの自動解読にトライしています。 あと、EUCコードに文字化け したものも解読できるようにしました。これは、自分が購読しているメーリングリストからEUCで文字化けした
メールをもらったのですが、 Mbaker で解読できなかったので、急いで作りました。 いまのところ、β評価中です。 EUCの文字化けで困っている方メールをいただければ、β版をお送りいたします。
技術情報: 多重文字化けとは、例えば、メールの送出側がSiftJISでデータを送り出してしまったため、
どこかでこのデータはバイナリデータであると勘違いされデータ全体がBASE64に変換されてしまった場合のような状況を示します。
Mbakerではこの場合、BASE64をデコードした後にもう一度ほかの文字化けが発生していないかどうかを自動判断させるようにしました。
Links
文字化けに付きましては下記のサイトが非常に細かく説明されていますので参照ください。
Impress
Watch [特集] 「文字化けを出さないメール術 / 代表的症状の原因と予防法」
「インターネットメールの注意点」
「Microsoft
Internet Mail &News の設定」
漢字コード一般については以下のサイトがお勧めですので参照ください。
「漢字コードの話」
連絡用のメールアドレスは、belden_drYYY@hotmail.com にお願いします。
(メールアドレス中の[YYY]は削除して入力してください。)

