Bush hid the facts

「Bush hid the facts」(ブッシュは事実を隠蔽した)とは、Microsoft Windowsの一部のバージョンにおいて確認された、特定の文字列が文字化けする現象の通称です。この現象は、ASCIIでエンコードされた特定の文字列が、UTF-16LEとして誤って解釈されることで発生します。中でも「Bush hid the facts」という文字列は、メモ帳で新規ファイルとして保存し、再度開くと「畂桳栠摩琠敨映捡獴」という、意味不明な漢字の羅列に変化することから、この名前で呼ばれるようになりました。

この文字列に登場する「ブッシュ」とは、第43代アメリカ合衆国大統領のジョージ・W・ブッシュのことです。この文字化け現象は、当初バグではなく、ブッシュ政権がMicrosoftに依頼して隠蔽工作を行っていたという陰謀論ジョークとして広まりました。しかし、この現象は「hhhh hhh hhh hhhhh」や「this app can break」(このアプリは壊れる)といった他の文字列でも発生することが確認されています。これらの文字列は、同じ位置に文字やスペースが含まれていれば再現可能であり、特定の文字列のみに起こる現象ではないことが明らかになりました。

このバグの根本的な原因は、Win32 API内の文字エンコード検出関数である「IsTextUnicode」の誤作動にあります。この関数は、対象の文字列が有効なUTF-16LEコードである場合に「True」を返すものですが、誤ってUTF-16LEであると判定してしまうことで、文字化けが発生します。このバグは2004年初頭に発見されましたが、実は「IsTextUnicode」が初めて搭載されたMicrosoft Windows NT 3.5(1994年リリース)の時点から存在していた可能性があります。つまり、10年近く潜在的に存在していたことになります。

この問題は、2006年にリリースされたWindows Vista版のメモ帳において、文字エンコード判定に「IsTextUnicode」を使用しないアルゴリズムに変更されたことで、発生しなくなりました。しかし、依然として「IsTextUnicode」を使用している多くのテキストエディタやツールでは、このバグが残存しています。したがって、特定の文字列を扱う際には、文字コードの取り扱いに注意が必要です。

この現象は、コンピュータにおける文字コードとエンコードの問題、そしてソフトウェアにおけるバグの発生と、その影響範囲を理解する上で非常に興味深い事例です。また、単なるバグ陰謀論という形に発展し、人々の好奇心を刺激する点も、特筆すべきでしょう。技術的な側面と、社会的な側面の両方から、この「Bush hid the facts」のバグは、コンピュータ史における一つの面白いエピソードとして記憶されています。

出典:

The Notepad file encoding problem, redux – Raymond Chen
IsTextUnicode – MSDN Library

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。