Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
UTF-8 закодирована Японской статьи в Википедии для кракозябров , как показан , если интерпретировать как Windows-1252 кодировки

Моджибаке (文字 化 け; IPA:  [mod͡ʑibake] ) - это искаженный текст, который является результатом декодирования текста с использованием непреднамеренной кодировки символов . [1] Результатом является систематическая замена символов на совершенно не связанные, часто из другой системы письма .

Это отображение может включать общий символ замены (« ») в местах, где двоичное представление считается недопустимым. Замена также может включать в себя несколько последовательных символов, если смотреть в одном кодировании, когда один и тот же двоичный код составляет один символ в другом кодировании. Это происходит либо из-за разницы в кодировке постоянной длины (как в азиатских 16-битных кодировках и европейских 8-битных кодировках), либо из-за использования кодировок переменной длины (особенно UTF-8 и UTF-16 ).

Неудачный рендеринг глифов из-за отсутствия шрифтов или глифов в шрифте - это другая проблема, которую не следует путать с моджибаке. Симптомы этой неудачной визуализации включают блоки с кодовой точкой, отображаемой в шестнадцатеричном формате, или с использованием универсального символа замены. Важно отметить, что эти замены действительны и являются результатом правильной обработки ошибок программным обеспечением.

Этимология [ править ]

Кракозябры означает «преобразование символов» в японском языке . Слово состоит из文字(moji, IPA:  [mod͡ʑi] ), «характер» и化 け(bake, IPA:  [bäke̞] , произносится как «bah-keh»), «преобразовать».

Причины [ править ]

Для правильного воспроизведения исходного текста, который был закодирован, необходимо сохранить соответствие между закодированными данными и понятием их кодировки. Поскольку моджибаке является примером несоответствия между ними, это может быть достигнуто путем манипулирования самими данными или просто перемаркировкой их.

Моджибаке часто встречается с текстовыми данными, которые имеют неправильную кодировку; он может даже не быть помечен, а перемещаться между компьютерами с разными кодировками по умолчанию. Основным источником проблем являются протоколы связи, которые полагаются на настройки на каждом компьютере, а не отправляют или хранят метаданные вместе с данными.

Различия в настройках по умолчанию на разных компьютерах частично объясняются разным развертыванием Unicode в семействах операционных систем , а частично - специализацией устаревших кодировок для разных систем письма человеческих языков. В то время как дистрибутивы Linux в основном перешли на UTF-8 в 2004 году [2] Microsoft Windows по- прежнему использует кодовые страницы для текстовых файлов, которые различаются между языками. [ сомнительно ]

Для некоторых систем письма , например японских , исторически использовалось несколько кодировок, из-за чего пользователи относительно часто видели моджибаке. В качестве примера на японском языке слово mojibake «文字 化 け», хранящееся как EUC-JP, может неправильно отображаться как «ハ ク サ ス 、 ア», «ハ ク サ 嵂 、 ア» ( MS-932 ) или «ハ ク サ 郾 ス 、. "( Shift JIS-2004 ). Тот же текст, сохраненный как UTF-8 , отображается как «譁 蟄 怜 喧 縺 », если интерпретируется как Shift JIS. Это еще больше усугубляется, если задействованы другие языковые стандарты: тот же текст UTF-8 отображается как «– ‡ å — åŒ – ã ??» в программном обеспечении, которое предполагает, что текст находится в Windows-1252 или ISO-8859-1кодировки, обычно обозначаемые как Western, или (например) как «鏂 囧 瓧 鍖 栥 亼», если интерпретируются как локаль GBK (материковый Китай).

Уточнение [ править ]

Если кодировка не указана, программное обеспечение может решить ее другими способами. В зависимости от типа программного обеспечения типичным решением является эвристика определения конфигурации или кодировки . Оба они склонны к неверным предсказаниям в не столь редких сценариях.

На кодировку текстовых файлов влияет настройка локали , которая зависит от языка пользователя, марки операционной системы и, возможно, других условий. Следовательно, предполагаемая кодировка систематически неверна для файлов, которые поступают с компьютера с другими настройками или даже из другого локализованного программного обеспечения в той же системе. Для Unicode одним из решений является использование метки порядка байтов , но для исходного кода и другого машиночитаемого текста многие синтаксические анализаторы не допускают этого. Другой - сохранение кодировки как метаданных в файловой системе. Файловые системы, поддерживающие расширенные атрибуты файлов, могут хранить это как user.charset. [3] Это также требует поддержки со стороны программного обеспечения, которое хочет использовать это преимущество, но не мешает другому программному обеспечению.

Хотя некоторые кодировки легко обнаружить, в частности UTF-8, многие из них трудно различить (см. Определение кодировки ). Веб - браузер может не быть в состоянии отличить страницу , закодированной в EUC-JP , а другой в Shift-JIS , если схема кодирования не назначается явно с помощью HTTP заголовки отправляется вместе с документами, или с помощью HTML - документа мета - теги , которые используются для замените отсутствующие заголовки HTTP, если сервер не может быть настроен для отправки правильных заголовков HTTP; см. кодировки символов в HTML .

Неправильная спецификация [ править ]

Моджибаке также возникает, когда кодировка указана неправильно. Это часто происходит между похожими кодировками. Например, почтовый клиент Eudora для Windows, как известно, отправлял электронные письма с пометкой ISO-8859-1 , которые на самом деле были Windows-1252 . [4] Версия Eudora для Mac OS не проявляла такого поведения. Windows-1252 содержит дополнительные печатаемые символы в диапазоне C1 (наиболее часто встречающиеся - это типографически правильные кавычки и тире ), которые не отображались должным образом в программном обеспечении, соответствующем стандарту ISO; это особенно повлияло на программное обеспечение, работающее под другими операционными системами, такими какUnix .

Человеческое невежество [ править ]

Из кодировок, которые все еще используются, многие частично совместимы друг с другом, при этом ASCII является преобладающим общим подмножеством. Это создает почву для человеческого невежества:

  • Совместимость может быть обманчивым свойством, так как смешивание двух кодировок не влияет на общее подмножество символов (см. Проблемы в разных системах письма ).
  • Люди думают, что используют ASCII, и склонны маркировать любой надмножество ASCII, которое они фактически используют, как «ASCII». Может быть , для упрощения, но даже в научной литературе, слово «ASCII» можно найти в качестве примера чего - то не совместимого с Unicode, где , очевидно , «ASCII» является Windows-1252 и «Unicode» является UTF-8. [1] Обратите внимание , что UTF-8 является обратно совместимым с ASCII.

Превышение спецификации [ править ]

Когда существуют уровни протоколов, каждый из которых пытается указать кодировку на основе различной информации, наименьшая определенная информация может ввести получателя в заблуждение. Например, рассмотрим веб-сервер, обслуживающий статический HTML-файл через HTTP. Набор символов может быть передан клиенту тремя способами:

  • в заголовке HTTP. Эта информация может быть основана на конфигурации сервера (например, при обслуживании файла с диска) или контролироваться приложением, запущенным на сервере (для динамических веб-сайтов).
  • в файле в виде метатега HTML ( http-equivили charset) или encodingатрибута объявления XML . Это кодировка, в которой автор хотел сохранить конкретный файл.
  • в файле как отметка порядка байтов . Это кодировка, в которой авторский редактор фактически сохранил ее. Если не произошло случайного преобразования кодировки (путем открытия ее в одной кодировке и сохранения в другой), это будет правильно. Однако он доступен только в кодировках Unicode, таких как UTF-8 или UTF-16.

Отсутствие аппаратной или программной поддержки [ править ]

Более старое оборудование, как правило, предназначено для поддержки только одного набора символов, и этот набор символов обычно нельзя изменить. Таблица символов, содержащаяся в микропрограмме дисплея, будет локализована, чтобы содержать символы для страны, в которой устройство будет продаваться, и обычно таблица отличается от страны к стране. Таким образом, эти системы потенциально будут отображать моджибаке при загрузке текста, созданного в системе из другой страны. Точно так же многие ранние операционные системы не поддерживают несколько форматов кодирования и, таким образом, в конечном итоге будут отображать моджибаке, если они созданы для отображения нестандартного текста - ранние версии Microsoft Windows и Palm OS. например, локализованы для каждой страны и будут поддерживать только стандарты кодирования, соответствующие той стране, в которой будет продаваться локализованная версия, и будут отображать моджибаке, если файл, содержащий текст в формате кодирования, отличном от версии, в которой ОС предназначен для поддержки открыт.

Резолюции [ править ]

Приложения, использующие UTF-8 в качестве кодировки по умолчанию, могут достичь большей степени совместимости из-за его широкого использования и обратной совместимости с US-ASCII . UTF-8 также может напрямую распознаваться простым алгоритмом, поэтому хорошо написанное программное обеспечение должно избегать смешивания UTF-8 с другими кодировками.

Сложность разрешения экземпляра моджибаке зависит от приложения, в котором он встречается, и его причин. Два наиболее распространенных приложения, в которых может встречаться моджибаке, - это веб-браузеры и текстовые редакторы . Современные браузеры и текстовые процессоры часто поддерживают широкий спектр кодировок символов. Браузеры часто позволяют пользователю изменять настройки кодировки своего движка рендеринга на лету, в то время как текстовые процессоры позволяют пользователю выбирать соответствующую кодировку при открытии файла. Пользователям может потребоваться метод проб и ошибок, чтобы найти правильную кодировку.

Проблема усложняется, когда она возникает в приложении, которое обычно не поддерживает широкий диапазон кодировки символов, например, в компьютерных играх, не поддерживающих Unicode. В этом случае пользователь должен изменить настройки кодировки операционной системы в соответствии с настройками игры. Однако изменение общесистемных настроек кодирования также может вызвать Mojibake в уже существующих приложениях. В Windows XP или более поздних версиях пользователь также может использовать Microsoft AppLocale - приложение, которое позволяет изменять настройки локали для каждого приложения. Даже в этом случае изменение настроек кодировки операционной системы невозможно в более ранних операционных системах, таких как Windows 98.; чтобы решить эту проблему в более ранних операционных системах, пользователю пришлось бы использовать сторонние приложения для визуализации шрифтов.

Проблемы в разных системах письма [ править ]

Английский [ править ]

Моджибаке в английских текстах обычно используется в знаках препинания, таких как длинное тире (-), короткое тире (-) и фигурные кавычки («,», ','), но редко в тексте символов, поскольку большинство кодировок согласуются с ASCII в кодировка английского алфавита . Например, знак фунта «£» будет отображаться как «£», если он был закодирован отправителем как UTF-8, но интерпретирован получателем как CP1252 или ISO 8859-1 . Если итерация выполняется с использованием CP1252, это может привести к появлению «‚ £», «â € šÃ‚ £», «'à ¢ €šÃ⠀ šÃ‚ £» и т. Д.

Некоторые компьютеры в старые времена имели кодировку, зависящую от производителя, что вызывало несоответствие также и для английского текста. В 8-битных компьютерах марки Commodore использовалось кодирование PETSCII , особенно примечательное инвертированием верхнего и нижнего регистра по сравнению со стандартным ASCII . Принтеры PETSCII отлично работали на других компьютерах того времени, но регистр всех букв был перевернут. В мэйнфреймах IBM используется кодировка EBCDIC, которая вообще не соответствует ASCII.

Другие западноевропейские языки [ править ]

Алфавиты северных германских языков , каталонского , финского , немецкого , французского , португальского и испанского языков являются расширениями латинского алфавита . Дополнительные символы, как правило, повреждаются, что делает текст нечитаемым с моджибаке:

  • å , ä и ö на финском и шведском языках
  • à, ç, è, é, ï, í, ò, ó, ú, ü на каталонском
  • æ , ø и å на норвежском и датском языках
  • á, é, ó, ij , è, ë, ï на голландском языке
  • ä, ö, ü и ß на немецком языке
  • á, ð , í , ó , ú , ý , æ и ø на Фарерских островах
  • á, ð, é , í, ó, ú, ý, þ , æ и ö на исландском
  • à, â, ç, è, é, ë, ê, ï, î, ô, ù, û, ü, ÿ, æ, œ на французском
  • à, è, é, ì, ò, ù по итальянски
  • á, é, í, ñ , ó, ú, ü, ¡, ¿ на испанском языке
  • à, á, â, ã, ç, é, ê, í, ó, ô, õ, ú на португальском языке (ü больше не используется)
  • á, é, í, ó, ú на ирландском
  • à, è, ì, ò, ù в шотландском гэльском
  • £ в британском английском

... и их аналоги в верхнем регистре, если применимо.

Это языки, для которых использовался набор символов ISO-8859-1 (также известный как Latin 1 или Western ). Однако ISO-8859-1 устарел двумя конкурирующими стандартами: обратно совместимой Windows-1252 и слегка измененным ISO-8859-15 . Оба добавляют знак евро € и французский œ, но в противном случае любое смешение этих трех наборов символов не приведет к созданию моджибаке на этих языках. Кроме того, всегда безопасно интерпретировать ISO-8859-1 как Windows-1252 и довольно безопасно интерпретировать его как ISO-8859-15, в частности, в отношении знака евро, который заменяет редко используемый знак валюты (¤) . Однако с появлением UTF-8, mojibake стал более распространенным явлением в определенных сценариях, например, при обмене текстовыми файлами между компьютерами UNIX и Windows , из-за несовместимости UTF-8 с Latin-1 и Windows-1252. Но UTF-8 имеет возможность напрямую распознаваться простым алгоритмом, поэтому хорошо написанное программное обеспечение должно избегать смешивания UTF-8 с другими кодировками, поэтому это было наиболее распространено, когда у многих было программное обеспечение, не поддерживающее UTF-8. Большинство этих языков поддерживалось CP437 по умолчанию для MS-DOS и другими машинными кодировками по умолчанию, кроме ASCII, поэтому проблемы при покупке версии операционной системы были менее распространены. Однако Windows и MS-DOS несовместимы.

В шведском, норвежском, датском и немецком языках гласные редко повторяются, и обычно это становится очевидным, когда один символ искажается, например, вторая буква в «kÃ⁠¤rlek» ( kärlek , «любовь»). Таким образом, даже если читателю придется угадывать между å, ä и ö, почти все тексты остаются разборчивыми. С другой стороны, финский текст содержит повторяющиеся гласные в таких словах, как hääyöпервая брачная ночь»), из-за чего текст иногда может быть очень трудно читать (например, hääyö отображается как «hÃ⁠¤Ã⁠¤yÃ⁠¶»). В исландском и фарерском языках соответственно десять и восемь, возможно, несовместимых символов, что, таким образом, может затруднить угадывание искаженных символов; Исландские слова, такие как þjóðlö («выдающееся гостеприимство») становится почти совершенно непонятным, когда переводится как «Ã¾jóà ° löà °».

По-немецки Buchstabensalat («салат из букв») является обычным термином для этого явления, а по-испански - deformación (буквально деформация).

Некоторые пользователи транслитерируют свое письмо при использовании компьютера, либо опуская проблемные диакритические знаки, либо используя замену орграфа (å → aa, ä / æ → ae, ö / ø → oe, ü → ue и т. Д.). Таким образом, автор может написать «ueber» вместо «über», что является стандартной практикой в ​​немецком языке, когда умляуты недоступны. Последняя практика кажется более терпимой в сфере немецкого языка, чем в странах Северной Европы . Например, в норвежском языке диграфы связаны с архаичным датским языком и могут использоваться в шутку. Однако орграфы полезны для общения с другими частями мира. Например, у норвежского футболиста Оле Гуннара Сольскьера на спине было написано «СОЛЬСКЬЯР», когда он играл за « Манчестер Юнайтед»..

Артефакт UTF-8, неверно интерпретированный как ISO-8859-1 , «Ring meg nà ¥» (« Ring meg nå »), был замечен в SMS-мошенничестве в Норвегии в июне 2014 г. [5]

Центральная и Восточная Европа [ править ]

Пользователи языков Центральной и Восточной Европы также могут быть затронуты. Поскольку большинство компьютеров не были подключены к какой-либо сети в период с середины до конца 1980-х годов, для каждого языка существовали разные кодировки символов с диакритическими символами (см. ISO / IEC 8859 и KOI-8 ), часто также различающиеся в зависимости от операционной системы.

Венгерский [ править ]

Венгерский еще один затрагиваемой язык, который использует 26 основных английских символов, плюс акцентированные формы A, E, I, O, U, ö, ü (все присутствующие в наборе символов Latin-1), плюс два символа ö и ű, которых нет в Latin-1. Эти два символа могут быть правильно закодированы в Latin-2, Windows-1250 и Unicode. До того, как Unicode стал обычным явлением в почтовых клиентах, в электронных письмах, содержащих венгерский текст, буквы ő и ű часто были повреждены, иногда до неузнаваемости. Обычно на электронное письмо, которое оказывается нечитаемым (см. Примеры ниже), часто отвечают искажением символов (именуемым «betűszemét», что означает «мусор в письмах») фразой «Árvíztűrő tükörfúrógép», бессмысленной фразой (буквально «Потоп стойкий зеркально-сверлильный станок »), содержащий все акцентированные символы, используемые в венгерском языке.

Примеры [ править ]
Примечание: символы красного цвета неверны.

Польский [ править ]

До создания ISO 8859-2 в 1987 году, пользователи различных вычислительных платформ использовали свои собственные кодировки символов , таких как AmigaPL на Amiga, Atari клуба на Atari ST и Мазовии, IBM CP852 , Мазовии и Windows , CP1250 на IBM PC. Польские компании, продававшие ранние компьютеры с DOS, создали свои собственные несовместимые способы кодирования польских символов и просто перепрограммировали EPROM видеокарт (обычно CGA , EGA или Hercules ) для предоставления аппаратных кодовых страниц. с необходимыми глифами для польского - произвольно размещенными без ссылки на то, где их разместили другие продавцы компьютеров.

Ситуация начала улучшаться, когда под давлением академических кругов и групп пользователей ISO 8859-2 стал «стандартом Интернета» с ограниченной поддержкой программного обеспечения доминирующих производителей (сегодня в значительной степени замененного на Unicode). Из-за многочисленных проблем, вызванных разнообразием кодировок, даже сегодня некоторые пользователи склонны называть польские диакритические символы krzaczki ([kshach-kih], букв. «Кусты»).

Русский и другие кириллические алфавиты [ редактировать ]

Моджибаке, вызванный названием песни на кириллице ( Моя страна ) на автомобильной аудиосистеме

Моджибаке в просторечии можно назвать кракозябры ( кракозя́бры [krɐkɐˈzʲæbrɪ̈] ) на русском языке , который был и остается сложным из-за нескольких систем кодирования кириллицы . [6] Советский Союз иначале России Федерация разработали K кодировок ( Kod Obmena Informatsiey , Код Обмен Информация , что переводится как «код для обмена информации»). Это началось с 7-битного KOI7 , состоящего только из кириллицы , на основе ASCII, но с заменой латинских и некоторых других символов буквами кириллицы. Затем появилась 8-битнаякодировка KOI8, которая является расширением ASCII.который кодирует кириллические буквы только старшими октетами, соответствующими 7-битным кодам из KOI7. Именно по этой причине текст KOI8, даже русский, остается частично читаемым после удаления восьмого бита, что считалось большим преимуществом в эпоху неосведомленных систем электронной почты 8BITMIME . Например, слова « Школа русского языка » школы русского языка , закодированные в KOI8, а затем прошедшие процесс удаления старших битов, в итоге отображаются как «[КОЛА РУССКОГО qZYKA». Со временем KOI8 приобрел разные оттенки для русского и болгарского ( KOI8-R ), украинского ( KOI8-U ), белорусского (KOI8-RU) и даже таджикского (KOI8-T).

Между тем, на Западе кодовая страница 866 поддерживала украинский и белорусский, а также русский / болгарский языки в MS-DOS . Для Microsoft Windows , Code Page 1251 добавлена поддержка для сербского и других славянских вариантов кириллицы .

Совсем недавно кодировка Unicode включает кодовые точки практически для всех символов всех языков мира, включая все символы кириллицы.

До появления Unicode необходимо было согласовывать кодировку текста со шрифтом, используя ту же систему кодирования. Несоблюдение этого правила приводило к нечитаемой тарабарщине , конкретный вид которой зависел от точной комбинации кодировки текста и кодировки шрифта. Например, попытка просмотра кириллического текста, отличного от Unicode, с использованием шрифта, ограниченного латинским алфавитом, или с использованием кодировки по умолчанию («западная») обычно приводит к тексту, который почти полностью состоит из гласных с диакритическими знаками. (КОИ8 " Библиотека " ( библиотека, библиотека) становится "âÉÂÌÉÏÔÅËÁ".) Использование кодовой страницы 1251 Windows для просмотра текста в KOI8 или наоборот приводит к искаженному тексту, который состоит в основном из заглавных букв (KOI8 и кодовая страница 1251 имеют один и тот же регион ASCII, но в KOI8 в этом регионе есть прописные буквы. где кодовая страница 1251 имеет нижний регистр, и наоборот). В общем, кириллица - это признак использования неправильного кириллического шрифта. В первые годы существования российского сектора всемирной паутины как KOI8, так и кодовая страница 1251 были обычными. По состоянию на 2017 год все еще можно встретить HTML-страницы в кодовой странице 1251 и, реже, в кодировках KOI8, а также в Unicode. (Примерно 1,7% всех веб-страниц в мире, включая все языки, закодированы в кодовой странице 1251. [7]) Хотя стандарт HTML включает возможность указывать кодировку для любой данной веб-страницы в ее источнике [8], этим иногда пренебрегают, заставляя пользователя переключать кодировки в браузере вручную.

По- болгарски моджибаке часто называют маймуница ( маймуница ), что означает «обезьяний [алфавит]». По- сербски это называется ubre ( ђубре ), что означает « мусор ». В отличие от бывшего СССР, южные славяне никогда не использовали что-то вроде KOI8, и Code Page 1251 была доминирующей кодировкой кириллицы до Unicode. Поэтому в этих языках было меньше проблем с несовместимостью кодировок, чем в русском. В 1980-х болгарские компьютеры использовали собственную кодировку MIK , внешне похожую (хотя и несовместимую) с CP866.

Югославские языки [ править ]

Хорватский , боснийский , сербский (варианты югославского сербо-хорватского языка ) и словенский добавляют к основному латинскому алфавиту буквы š, đ, č, ć, ž и их заглавные аналоги Š, Đ, Č, Ć, Ž ( только č / Č, š / Š и ž / Ž на словенском языке; официально, хотя при необходимости используются другие, в основном также и в иностранных названиях). Все эти буквы определены в Latin-2 и Windows-1250 , в то время как только некоторые (š, Š, ž, Ž, Đ) существуют в обычной операционной системе Windows-1252 по умолчанию и существуют из-за некоторых других языков.

Хотя моджибаке может встречаться с любым из этих символов, буквы, отсутствующие в Windows-1252, гораздо более подвержены ошибкам. Таким образом, даже в наши дни «šđčćž ŠĐČĆŽ» часто отображается как «šðèæž ŠÐÈÆŽ», хотя ð, è, æ, È, Æ никогда не используются в славянских языках.

При ограничении базовым ASCII (например, большинство имен пользователей) распространенными заменами являются: š → s, đ → dj, č → c, ć → c, ž → z (заглавные буквы образуются аналогично, с Đ → Dj или Đ → DJ в зависимости от регистра). Все эти замены вносят неоднозначность, поэтому восстановление оригинала по такой форме обычно выполняется вручную, если это необходимо.

Windows-1252 кодирование является важным , поскольку английские версии операционной системы Windows , наиболее распространены, не локализован теми. [ необходима цитата ] Причины этого включают относительно небольшой и фрагментированный рынок, повышение цены на высококачественную локализацию, высокую степень пиратства программного обеспечения (в свою очередь, вызванное высокой ценой программного обеспечения по сравнению с доходом), что препятствует усилиям по локализации, и люди, предпочитающие английские версии Windows и другого программного обеспечения. [ необходима цитата ]

Стремление отличить хорватский от сербского, боснийский от хорватского и сербского, а теперь и черногорскийот остальных трех создает много проблем. Есть много разных локализаций, использующих разные стандарты и разного качества. Для огромного количества компьютерной терминологии с английского языка нет общих переводов. В конце концов, люди используют заимствованные английские слова ("компьютер" для "компьютера", "kompajlirati" для "компиляции" и т. Д.), И, если они не привыкли к переведенным терминам, могут не понять, какой вариант в меню предполагается. делать на основе переведенной фразы. Поэтому люди, которые понимают английский, а также те, кто привык к английской терминологии (а их больше всего, потому что английская терминология также в основном преподается в школах из-за этих проблем), регулярно выбирают оригинальные английские версии неспециализированного программного обеспечения.

Когда используется кириллица (для македонского и частично сербского языков ), проблема аналогична другим сценариям на основе кириллицы .

Более новые версии английской Windows позволяют изменять кодовую страницу (для более старых версий требуются специальные английские версии с этой поддержкой), но этот параметр может быть и часто устанавливался неправильно. Например, в Windows 98 и Windows Me можно настроить большинство однобайтовых кодовых страниц с написанием не справа налево, включая 1250, но только во время установки.

Кавказские языки [ править ]

Системы письма некоторых языков Кавказского региона, включая сценарии грузинского и армянского языков, могут давать моджибаке. Эта проблема особенно остро стоит в случае ArmSCII или ARMSCII, набора устаревших кодировок символов для армянского алфавита, которые были заменены стандартами Unicode. ArmSCII не получил широкого распространения из-за отсутствия поддержки в компьютерной индустрии. Например, Microsoft Windows не поддерживает его.

Азиатские кодировки [ править ]

Другой тип моджибаке возникает, когда текст ошибочно разбирается в многобайтовой кодировке, такой как одна из кодировок для языков Восточной Азии . Этот вид моджибаке повреждает сразу несколько символов (обычно два), например, «k 舐 lek» ( kärlek ) на шведском языке, где « är"разбирается как" ". По сравнению с приведенным выше моджибаке его труднее читать, поскольку буквы, не относящиеся к проблематичным å, ä или ö, отсутствуют, и особенно проблематичны короткие слова, начинающиеся с å, ä или ö, такие как «än» (превращается в «舅»). Поскольку две буквы объединены, моджибаке также кажется более случайным (более 50 вариантов по сравнению с обычными тремя, не считая более редких заглавных букв). В некоторых редких случаях целая текстовая строка, которая бывает, что он включает образец определенной длины слова, например, предложение « Буш скрыл факты » может быть неверно истолковано.

Японский [ править ]

В японском языке , это явление, как уже упоминалось, называется кракозябры (文字化け) . Это особая проблема в Японии из-за множества различных кодировок, которые существуют для японского текста. Помимо кодировок Unicode, таких как UTF-8 и UTF-16, существуют другие стандартные кодировки, такие как Shift-JIS (для компьютеров Windows) и EUC-JP (для систем UNIX). Моджибаке, с которым сталкиваются японские пользователи, также часто встречается у неяпонцев при попытке запустить программное обеспечение, написанное для японского рынка.

Китайский [ править ]

На китайском языке то же явление называется Luàn m ( пиньинь , упрощенный китайский 乱码, традиционный китайский 亂碼, что означает «хаотический код»), и может возникать, когда компьютеризированный текст закодирован в одной китайской кодировке символов, но отображается с использованием неправильной кодировки. Когда это происходит, часто можно решить проблему, переключив кодировку символов без потери данных. Ситуация осложняется тем, что существует несколько используемых систем кодировки китайских символов, наиболее распространенными из которых являются: Unicode , Big5 и Guobiao. (с несколькими версиями с обратной совместимостью), а также возможность кодирования китайских символов с использованием японской кодировки.

Когда luanma встречается в кодировках Guobiao, легко определить исходную кодировку:

Дополнительная проблема возникает, когда в кодировках отсутствуют символы, что часто случается с редкими или устаревшими символами, которые все еще используются в личных именах или названиях мест. Примерами этого являются «煊» тайваньских политиков Ван Цзянь-шиен (китайский:王建 煊; пиньинь: Ван Цзяньсюань ), Юй Ши-кун (упрощенный китайский:游锡堃; традиционный китайский:游錫堃; пиньинь: Ю Сикунь ) »堃 »и певца Дэвида Тао (кит .:陶 喆; пиньинь: Táo Zhé )« », пропавшего без вести в Big5 , экс-премьер КНР Чжу Жунцзи (кит .:朱镕基; pinyin: Чжу Ронджи ) отсутствует в GB2312 , символ авторского права «©» отсутствует в GBK . [9]

В газетах эта проблема решается по-разному, в том числе с помощью программного обеспечения для объединения двух существующих похожих персонажей; использование изображения личности; или просто заменив этот редкий персонаж омофоном в надежде, что читатель сможет сделать правильный вывод.

Индийский текст [ править ]

Аналогичный эффект может иметь место в Brahmic или индоевропейских сценарии в Южной Азии , используемых в таких индоарийских или языках индоевропейских , как Hindustani (хинди-урду), бенгальская , пенджаби , маратхи и другие, даже если набор символов используются правильно распознаются приложение. Это связано с тем, что во многих индийских алфавитах правила, по которым отдельные буквенные символы объединяются для создания символов для слогов, могут быть неправильно поняты компьютером, в котором отсутствует соответствующее программное обеспечение, даже если доступны глифы для отдельных буквенных форм.

Одним из примеров этого является старый логотип Википедии , который пытается показать иероглиф, аналогичный «wi» (первый слог «Wikipedia»), на каждой из многих частей головоломки. Кусок головоломки, предназначенный для обозначения символа деванагари для «wi», вместо этого использовался для отображения символа «wa», за которым следует непарная гласная- модификатор «i» , легко распознаваемая как моджибаке, созданная компьютером, не настроенным для отображения индийского текста. [10] В обновленном логотипе по состоянию на май 2010 года эти ошибки исправлены.

Идея простого текста требует, чтобы операционная система предоставляла шрифт для отображения кодов Unicode. Этот шрифт отличается от ОС к ОС для Singhala и делает орфографически неправильные глифы для некоторых букв (слогов) во всех операционных системах. Например, «реф», краткая форма «р», является диакритическим знаком, который обычно ставится поверх простой буквы. Однако неправильно ставить поверх некоторых букв, таких как «я» или «ля», в определенных контекстах. Для санскритских слов или имен, унаследованных от современных языков, таких как कार्य, IAST: kārya или आर्या, IAST: āryā , его обычно помещают поверх этих букв. Напротив, для похожих звуков в современных языках, которые являются результатом их специфических правил, оно не ставится сверху, например, слово करणाऱ्या, IAST:Каранарья, основная форма общего слова करणारा / री, IAST: karaṇārā / rī в языке маратхи . [11] Но это происходит в большинстве операционных систем. Похоже, это ошибка внутреннего программирования шрифтов. В Mac OS и iOS комбинации muurdhaja l (темный l) и «u», а также их длинная форма дают неправильные формы. [ необходима цитата ]

Некоторые индийские и производные от нее скрипты, в первую очередь лаосские , официально не поддерживались Windows XP до выпуска Vista . [12] Однако различные сайты сделали шрифты для бесплатной загрузки.

Бирманский [ править ]

Из-за западных санкций [13] и позднего появления поддержки бирманского языка в компьютерах [14] [15] большая часть ранней бирманской локализации была произведена самостоятельно без международного сотрудничества. Преобладающие средства поддержки бирманского языка - это шрифт Zawgyi, шрифт , который был создан как шрифт Unicode, но на самом деле был только частично совместим с Unicode. [15] В шрифте Zawgyi некоторые кодовые точки для бирманского скрипта были реализованы, как указано в Unicode , а другие - нет. [16] Консорциум Unicode называет это специальными кодировками шрифтов . [17]С появлением мобильных телефонов такие производители мобильных устройств, как Samsung и Huawei, просто заменили системные шрифты, совместимые с Unicode, версиями Zawgyi. [14]

Из-за этих специальных кодировок обмен данными между пользователями Zawgyi и Unicode будет отображаться как искаженный текст. Чтобы обойти эту проблему, производители контента публиковали сообщения как в Zawgyi, так и в Unicode. [18] Правительство Мьянмы обозначило 1 октября 2019 года как «День U» для официального перехода на Unicode. [13] Предполагается, что полный переход займет два года. [19]

Африканские языки [ править ]

В некоторых системах письма Африки незакодированный текст нечитаем. Тексты, которые могут производить моджибаке, включают тексты из Африканского Рога, такие как шрифт геэз в Эфиопии и Эритрее , используемый для амхарского , тигрского и других языков, а также сомалийский язык , в котором используется алфавит османья . В Южной Африке , то алфавит Mwangwego используется для записи языков Малави и алфавита Mandombe был создан для Демократической Республики Конго, но они обычно не поддерживаются. Различные другие системы письма, характерные для Западной Африки, представляют аналогичные проблемы, такие как алфавит нко , используемый для языков мандин в Гвинее , и слоговая система вай , используемая в Либерии .

Арабский [ править ]

Еще один затронутый язык - арабский (см. Ниже ). Если кодировки не совпадают, текст становится нечитаемым.

Примеры [ править ]

В примерах в этой статье не используется UTF-8 в качестве настройки браузера, поскольку UTF-8 легко распознается, поэтому, если браузер поддерживает UTF-8, он должен распознавать его автоматически, а не пытаться интерпретировать что-то еще как UTF-8.

См. Также [ править ]

  • Кодовая точка
  • Замещающий персонаж
  • Замещающий персонаж
  • Новая строка - соглашения об отображении разрыва строки различаются в системах Windows и Unix. Хотя большинство программного обеспечения поддерживает оба соглашения (что тривиально), программное обеспечение, которое должно сохранять или отображать разницу (например, системы контроля версий и инструменты сравнения данных), может стать значительно сложнее в использовании, если не придерживаться одного соглашения.
  • Отметка порядка байтов - самый внутренний способ сохранить кодировку вместе с данными - добавить ее. Это намеренно невидимо для людей, использующих совместимое программное обеспечение, но по замыслу будет восприниматься как «мусорные символы» для несовместимого программного обеспечения (включая многие интерпретаторы ).
  • Сущности HTML - кодирование специальных символов в HTML, в основном необязательно, но требуется для некоторых символов, чтобы избежать интерпретации как разметки.

    Хотя неспособность применить это преобразование является уязвимостью (см. Межсайтовый скриптинг ), слишком частое его применение приводит к искажению этих символов. Например, кавычка "становится ", ", "и так далее.

  • Буш скрыл факты

Ссылки [ править ]

  1. ^ a b Кинг, Ричи (2012). «Будет ли Юникод скоро универсальным кодом? [Данные]». IEEE Spectrum . 49 (7): 60. DOI : 10,1109 / MSPEC.2012.6221090 .
  2. ^ Windischmann, Stephan (31 марта 2004). "curl -v linux.ars (интернационализация)" . Ars Technica . Проверено 5 октября 2018 года .
  3. ^ «Рекомендации по расширенным атрибутам» . 2013-05-17 . Проверено 15 февраля 2015 .
  4. ^ "Список рассылки Unicode в почтовом клиенте Eudora" . 2001-05-13 . Проверено 1 ноября 2014 .
  5. ^ "смс-афера" . 18 июня 2014 . Проверено 19 июня 2014 года .
  6. ^ стр. 141, Control + Alt + Delete: словарь Cyberslang , Джонатон Китс, Globe Pequot, 2007, ISBN 1-59921-039-8 . 
  7. ^ «Использование Windows-1251 для веб-сайтов» .
  8. ^ «Объявление кодировки символов в HTML» .
  9. ^ "PRC GBK (XGB)" . Архивировано из оригинала на 2002-10-01.Карта преобразования между кодовой страницей 936 и Unicode. Необходимо вручную выбрать GB18030 или GBK в браузере для правильного просмотра.
  10. Коэн, Ноам (25 июня 2007 г.). «Некоторые ошибки не поддаются исправлению: опечатка в логотипе Википедии разрушает санскрит» . Нью-Йорк Таймс . Проверено 17 июля 2009 года .
  11. ^ https://marathi.indiatyping.com/
  12. ^ «Контент перемещен (Windows)» . Msdn.microsoft.com . Проверено 5 февраля 2014 .
  13. ^ a b «Unicode in, Zawgyi out: современность, наконец, догоняет цифровой мир Мьянмы» . The Japan Times . 27 сентября 2019 . Проверено 24 декабря 2019 . 1 октября - «U-Day», когда Мьянма официально примет новую систему ... Microsoft и Apple много лет назад помогали другим странам стандартизировать, но западные санкции означали, что Мьянма проиграла.
  14. ^ a b Гочкис, Гриффин (23 марта 2016 г.). «Битва шрифтов» . Граница Мьянмы . Проверено 24 декабря 2019 .С выпуском пакета обновления 2 для Windows XP были поддержаны сложные сценарии, что позволило Windows отображать совместимый с Unicode бирманский шрифт, такой как Myanmar1 (выпущенный в 2005 году). ... Myazedi, BIT, а позже Zawgyi ограничили проблему рендеринга, добавив дополнительные кодовые точки, которые были зарезервированы для этнических языков Мьянмы. Повторное отображение не только предотвращает поддержку этнических языков в будущем, но и приводит к появлению системы набора текста, которая может сбивать с толку и неэффективна даже для опытных пользователей. ... Huawei и Samsung, два самых популярных бренда смартфонов в Мьянме, заинтересованы только в том, чтобы захватить самую большую долю рынка, а это означает, что они поддерживают Zawgyi из коробки.
  15. ↑ a b Sin, Thant (7 сентября 2019 г.). «Унифицированы под одной системой шрифтов, поскольку Мьянма готовится перейти с Zawgyi на Unicode» . Восходящие голоса . Проверено 24 декабря 2019 . Стандартные шрифты Unicode для Мьянмы никогда не были широко распространены, в отличие от частного и частично совместимого с Unicode шрифта Zawgyi. ... Unicode улучшит обработку естественного языка
  16. ^ «Зачем нужен Unicode» . Код Google: проект Zawgyi . Проверено 31 октября 2013 года .
  17. ^ «Сценарии и языки Мьянмы» . Часто задаваемые вопросы . Консорциум Unicode . Проверено 24 декабря 2019 . "UTF-8" технически не применяется к специальным кодировкам шрифтов, таким как Zawgyi.
  18. ^ ЛаГроу, Ник; Прузан, Мири (26 сентября 2019). «Интеграция автоконверсии: путь Facebook от Zawgyi к Unicode - Facebook Engineering» . Facebook Engineering . Facebook . Проверено 25 декабря 2019 . Это затрудняет общение на цифровых платформах, так как контент, написанный в Unicode, кажется пользователям Zawgyi искаженным, и наоборот. ... Чтобы лучше охватить свою аудиторию, производители контента в Мьянме часто размещают в одном сообщении как Zawgyi, так и Unicode, не говоря уже об английском или других языках.
  19. Видел Йи Нанда (21 ноября 2019 г.). «Мьянма переходит на Unicode на два года: разработчик приложений» . The Myanmar Times . Проверено 24 декабря 2019 .

Внешние ссылки [ править ]

  • Словарное определение моджибаке в Викисловаре
  • СМИ, связанные с моджибаке, на Викискладе?