В этой статье есть несколько проблем. Помогите улучшить ее или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти сообщения )
|
« Буш скрыл факты » — это общее название ошибки в Microsoft Windows , которая приводит к тому, что текст в кодировке ASCII интерпретируется как UTF-16LE , что приводит к искажению текста . Если вставить строку «Буш скрыл факты» без кавычек в новый документ Блокнота , сохранить, закрыть и снова открыть, то вместо нее появится бессмысленная последовательность китайских иероглифов «畂桳栠摩琠敨映捡獴». [1]
Хотя предложение « Буш скрыл факты» является наиболее часто используемым для возникновения ошибки, ошибка может быть вызвана и другими строками, например, «hhhh hhh hhh hhhhh» [2] или «это приложение может сломаться» [ 3] и даже «a» или «z!» [1] .
Ошибка возникает, когда строка передается в функцию определения кодировки Win32 IsTextUnicode . IsTextUnicode предполагает, что это Unicode, если «старший байт» (нечетные индексы) изменяется в три раза меньше, чем «младший байт», [1] если это так, то возвращается true , и приложение затем неправильно интерпретирует текст как UTF-16LE. [4]
Ошибка существовала с момента появления IsTextUnicode в Windows NT 3.5 в 1994 году, но была обнаружена только в начале 2004 года. [5] Многие текстовые редакторы и инструменты демонстрируют такое поведение в Windows, поскольку они используют IsTextUnicode для определения кодировки текстовых файлов. Начиная с Windows Vista , Notepad был изменен для использования другого алгоритма обнаружения, который не демонстрирует ошибку, но IsTextUnicode остается неизменным в операционной системе, поэтому любые другие инструменты, использующие эту функцию, по-прежнему подвержены влиянию. [6]
Для этой ошибки существует несколько способов решения:
{{cite web}}
: CS1 maint: bot: original URL status unknown (link)