Буш скрыл факты
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
« Буш скрыл факты » — это общее название ошибки, присутствующей в Microsoft Windows , из-за которой текст, закодированный в ASCII, интерпретируется так, как если бы он был UTF-16LE , что приводит к искажению текста . Когда строка «Буш скрыл факты» без кавычек была помещена в новый документ «Блокнот» , сохранена, закрыта и снова открыта, бессмысленная последовательность китайских иероглифов « 畂 桳 栠 摩 琠 敨 映 捡 獴». вместо нее появлялась [ нужна ссылка ]
« Буш Хотя фраза скрыл факты» чаще всего используется для того, чтобы вызвать ошибку, ошибка может быть вызвана и другими строками, например «хххх ххх ххх ххххх». [1] или «это приложение может сломаться» , [2] и даже «а» или «з!» . [3]
Ошибка возникает, когда строка передается в определения кодировки Win32. функцию ИстекстЮникод . IsTextUnicode предполагает, что это Юникод, если «старший байт» (нечетные индексы) изменяется в три раза меньше, чем «младший байт», [3] если так, то это возвращает true , и приложение неправильно интерпретирует текст как UTF-16LE. [4]
Ошибка существовала с тех пор IsTextUnicode был представлен в Windows NT 3.5 в 1994 году, но не был обнаружен до начала 2004 года. [5] Многие текстовые редакторы и инструменты демонстрируют такое поведение в Windows, поскольку они используют IsTextUnicode для определения кодировки текстовых файлов. Начиная с Windows Vista , Блокнот был модифицирован для использования другого алгоритма обнаружения, который не выявляет ошибку, но IsTextUnicode остается неизменным в операционной системе, поэтому любые другие инструменты, использующие эту функцию, по-прежнему затрагиваются. [6]
Обходные пути
[ редактировать ]Существует несколько обходных путей этой ошибки:
- Добавьте символ, чтобы строка имела длину нечетного числа байтов.
- Если файл сохранен как « UTF-8 » (до 2018 г.) или «UTF-8 со спецификацией» (после 2018 г.), а не «ANSI», текст загружается правильно, поскольку Блокнот добавляет к началу метку порядка байтов UTF-8 , которая шаблон, который не вызывает ошибку. [ нужна ссылка ] Открытие файла, соответствующего UTF-8, без метки порядка байтов все равно вызовет ошибку, поскольку эта последовательность представлена в UTF-8 одинаково, как и в ASCII.
- Ошибки также можно избежать, сохранив код в формате «Юникод», что в Microsoft Windows означает UTF-16LE. При загрузке этого текста IsTextUnicode должен (и возвращает) возвращать правда и текст правильный.
- Чтобы получить исходный текст с помощью Блокнота, откройте диалоговое окно «Открыть файл», выберите файл, выберите «ANSI» или «UTF-8» в списке «Кодировка» и нажмите «Открыть». В Windows 2000 в Блокноте отсутствует список «Кодировка». WordPad корректно загружает текст без выбора кодировки, поскольку использует собственное определение кодировки.
Ссылки
[ редактировать ]- ^ Кристенсен, Бретт М. (2 ноября 2009 г.). «Буш скрыл факты - заявление о заговоре в блокноте» . Истребитель мистификаций . Архивировано из оригинала 15 марта 2010 г.
- ^ Каплан, Майкл С. (14 июня 2006 г.). «За темой «Как взломать Блокнот Windows» » . archives.miloush.net . Архивировано из оригинала 25 октября 2013 года . Проверено 12 июля 2022 г.
{{cite web}}
: CS1 maint: bot: исходный статус URL неизвестен ( ссылка ) - ^ Jump up to: а б «Буш скрыл факты» ОБЪЯСНЕНИЕ ошибки , 4 июля 2023 г. , получено 4 июля 2023 г.
- ^ Чен, Раймонд (24 марта 2007 г.). «Некоторые файлы в Блокноте отображаются странно» . Старая новая вещь . Майкрософт . Проверено 12 июля 2022 г.
- ^ Кампс, Дэвид (27 февраля 2004 г.). «Ошибка в блокноте? Проблема с кодировкой?» . Блог #регион .Net . Проверено 15 февраля 2009 г.
- ^ Каплан, Майкл С. (25 марта 2008 г.). «Возможно, Буш все еще скрывал факты, но он не может скрыть их от Vista SP1/Server 2008 Notepad!» . Проверено 13 апреля 2017 г. .