Сохранение «Буш спрятал факты» в блокноте

54

При сохранении текста «Буш скрыл факты» в блокноте под Windows XP, почему при повторном открытии вместо текста отображаются квадраты?

Я видел это в этом видео, если вам нужен пример

http://www.youtube.com/watch?v=9bK9-sc_uus&feature=related

Джон Т
источник
28
Кстати, это одинаково для любой последовательности из 4-3-3-5 букв, не только для этой.
Гравитация
15
Пример: «Джон съел бекон»
Troggy

Ответы:

93

Это связано с проблемой функции Win32 API IsTextUnicode, существовавшей в Windows NT 3.5. Если файл закодирован в ANSI, функция будет интерпретировать его как UTF-16LE, что приведет к нечитаемым символам.

Это тоже очаровало меня, когда я обнаружил это, так как я был отчасти молод и наивен, я думал, что это был настоящий заговор :)

На самом деле есть статья в Википедии, которую вы можете найти здесь .

Джон Т
источник
17
Интересно. +1 за статью в вики, которая научила меня слову «mojibake» и особенно мета-предупреждению о том, что «без надлежащей поддержки рендеринга вы можете увидеть знаки вопроса, поля или другие символы ...» :-)
jtb
3
+1 потому что, несмотря на то, что я использую Windows столько, сколько себя помню, я как-то никогда не сталкивался с этим!
Джаред Харли
7
Ну, это явно ошибка, потому что программное обеспечение неправильно. Лучшее, что вы можете утверждать, это то, что такие ошибки невозможно устранить без потери других функций. И, черт возьми, Microsoft исправила это в Vista [согласно Wiki], так что кто-то там, очевидно, подумал, что это тоже ошибка.
Джон Фухи
11
Это не ошибка, если она делает именно то, что рекламирует (т.е. документирует). Точно указано, что это статистический тест, а не надежный, и чем короче ввод, тем выше уровень ошибок. Так уж сложилось, что в этом случае это происходит с предложением, которое имеет смысл для человека. Это конкретное предложение не работает с Vista & 7, потому что реализация IsTextUnicode была изменена и предположительно улучшена, и теперь он правильно сообщает об этом предложении. То, что мы имеем, лучше или хуже ложных положительных / отрицательных показателей, а не ошибок.
KTC
5
«Это не ошибка, если он делает то, что должен». Да, может быть, технический термин - «недостаток дизайна» или что-то в этом роде, но я думаю, что большинство людей все равно сказали бы, что можно назвать это ошибкой.
Davr