Bush hid the facts
# Bush hid the facts

Bush hid the facts è il nome comune per un bug presente in alcune versioni di Microsoft Windows che fa sì che il testo codificato in ASCII venga interpretato come se fosse UTF-16LE, risultando in un testo incomprensibile. Quando la stringa Bush hid the facts ("Bush nascondeva i fatti"), senza ritorno a capo o virgolette, veniva inserita in un nuovo documento del Blocco note e salvata, chiusa e riaperta, appariva invece la sequenza senza senso di caratteri cinesi "桴獩愠灰挠湡戠敲歡".

Mentre "Bush hid the facts" è la frase più comunemente presentata su Internet per indurre l'errore, il bug può essere innescato da molte stringhe con lettere e spazi nelle stesse posizioni, ad esempio "hhhh hhh hhh hhhhh". Altre sequenze attivano il bug, incluso anche il testo "a ".

Il bug si verifica quando la stringa viene passata alla funzione di rilevamento del set di caratteri Win32IsTextUnicode. IsTextUnicode vede che i byte corrispondono alla codifica UTF-16LE dei caratteri Unicode cinesi validi (se privi di senso), conclude che il testo è cinese UTF-16LE valido e restituisce true, quindi l'applicazione interpreta erroneamente il testo come UTF-16LE.

Il bug esisteva da quando IsTextUnicode è stato introdotto con Windows NT 3.5 nel 1994, ma non è stato scoperto fino all'inizio del 2004. Molti editor di testo e strumenti mostrano questo comportamento su Windows perché vengono utilizzatiIsTextUnicodeper determinare la codifica dei file di testo. A partire da Windows Vista, Blocco note è stato modificato per utilizzare un diverso algoritmo di rilevamento che non mostra il bug, maIsTextUnicoderimane invariato nel sistema operativo, quindi qualsiasi altro strumento che utilizza la funzione è ancora interessato.

