Bush hid the facts(ブッシュは事実を隠蔽した)は、Microsoft Windowsの一部のバージョンで生じることが確認されているバグ(障害)で、ASCIIでエンコードされた特定の文字列がUTF-16LEに解釈されて文字化けする現象の通称名。この特定の文字列の1つが「Bush hid the facts」であり、この文字列をメモ帳で編集した新規ファイルとして保存して閉じ、再び開くと「畂桳栠摩琠敨映捡獴」という意味不明な漢字の文字列で表示されることから、この名で呼ばれる。このブッシュとは第43代アメリカ合衆国大統領ジョージ・W・ブッシュのことであり、これはバグではなく、彼の政府がMicrosoftに依頼して隠蔽工作を行っていたとする陰謀論ジョークとして広まった。このバグは「hhhh hhh hhh hhhhh」や「this app can break」(このアプリは壊れる)といった文字列でも発生することが確認されており、同じ位置に文字やスペースがあれば他の文字列でも再現可能とされている。

このバグはWin32 API内の文字エンコード検出関数の IsTextUnicode の誤作動が原因である。この関数は対象の文字列が有効なUTF-16LEコードの場合に True を返すというものだが、誤作動でUTF-16LEだと誤って解釈してしまい文字化けが生じる。このバグが発見されたのは2004年初頭のことであったが、実は1994年にリリースされたMicrosoft Windows NT 3.5の時に IsTextUnicode が盛り込まれた時から発生する可能性があった。最終的に2006年のVista版のメモ帳において、IsTextUnicode を用いない形のアルゴリズムに修正されたため発生しなくなったが、依然として IsTextUnicode を用いる、その他の多くのテキストエディタやツールでは、このバグが発生した。

出典

外部リンク The Notepad file encoding problem, redux – Raymond Chen IsTextUnicode – MSDN Library