Моджибаке - Mojibake

В UTF-8 -кодированный Статья в японской Википедии для моджибаке как отображается, если интерпретируется как Окна-1252 кодирование

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

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

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

Этимология

Моджибаке означает "преобразование персонажа" в Японский. Слово состоит из 文字 (модзи, IPA:[mod͡ʑi]), "персонаж" и 化 け (печь, IPA:[печь], произносится как «бах-кех»), «преобразовать».

Причины

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

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

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

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

Пример моджибаке
Первоначальный текст
Необработанные байты кодировки EUC-JPCAB8BBFAБи 2BDA4B1
Байты интерпретируются как кодировка Shift-JIS
Байты интерпретируются как кодировка ISO-8859-1ʸ»ú²½¤±
Байты интерпретируются как кодировка GBK

Недостаточная спецификация

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

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

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

Неверная спецификация

Моджибаке также возникает, когда кодировка указана неправильно. Это часто происходит между похожими кодировками. Например, Eudora почтовый клиент для Windows был известен отправкой писем с пометкой ISO-8859-1 которые были на самом деле Окна-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 или кодировка) или кодирование атрибут XML декларация. Это кодировка, в которой автор хотел сохранить конкретный файл.
  • в файле, как отметка порядка байтов. Это кодировка, в которой авторский редактор фактически сохранил ее. Если не произошло случайного преобразования кодировки (путем открытия ее в одной кодировке и сохранения в другой), это будет правильно. Однако он доступен только в Unicode кодировки, такие как UTF-8 или UTF-16.

Отсутствие аппаратной / программной поддержки

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

Резолюции

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

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

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

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

английский

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

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

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

Алфавиты Северогерманские языки, Каталонский, Финский, Немецкий, Французский, португальский и испанский все являются продолжением Латинский алфавит. Дополнительные символы, как правило, повреждаются, что делает текст нечитаемым с моджибаке:

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

Это языки, для которых ISO-8859-1 набор символов (также известный как Латинский 1 или Западный) уже использовался. Однако ISO-8859-1 был устаревшим из-за двух конкурирующих стандартов: обратно совместимый Окна-1252, и слегка измененный ISO-8859-15. Оба добавляют Знак евро € и французский œ, но в остальном любое смешение этих трех наборов символов не приводит к созданию моджибаке на этих языках. Кроме того, всегда безопасно интерпретировать ISO-8859-1 как Windows-1252 и довольно безопасно интерпретировать его как ISO-8859-15, в частности, в отношении знака евро, который заменяет редко используемый знак валюты (¤). Однако с появлением UTF-8, моджибаке стал более распространенным в определенных сценариях, например обмен текстовыми файлами между 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ö отображается как «хёё»). В исландском и фарерском языках соответственно десять и восемь, возможно, несовместимых символов, что, таким образом, может затруднить угадывание искаженных символов; Исландские слова, такие как þjóðlö («выдающееся гостеприимство») становится почти совершенно непонятным, когда переводится как «Ã¾jóà ° löà °».

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

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

Артефакт UTF-8 неверно истолковано как ISO-8859-1, "Ring meg nà ¥" ("Кольцо мег нет"), был замечен в рассылке SMS-сообщений в Норвегии в июне 2014 года.[5]

Примеры
Шведский пример:Smörgås (открытый сэндвич )
Кодировка файлаНастройка в браузереРезультат
MS-DOS 437ISO 8859-1Sm "rg † s
ISO 8859-1Мак РоманSmˆrgÂs
UTF-8ISO 8859-1Smörgà ¥ s
UTF-8Мак РоманSm√∂rg√ • s

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

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

Венгерский

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

Примеры
Исходная кодировкаЦелевая кодировкаРезультатВхождение
Венгерский примерÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP
árvíztűrő tükörfúrógép
CP 852CP 437RVZTδрè TÜKÖРФΘрαгÉп
árvíztря tükörfúrógép
Это было очень распространено в ДОС -эра, когда текст был закодирован среднеевропейскими CP 852 кодирование; Тем не менее Операционная система, а программного обеспечения или принтер использовал значение по умолчанию CP 437 кодирование. Обратите внимание, что в основном правильными являются строчные буквы, за исключением ő (ï) и ű (√). Ü / ü правильно, потому что CP 852 был сделан совместимым с немецким языком. В настоящее время встречается в основном на печатных рецептах и ​​чеках.
CWI-2CP 437ÅRVяZTÿрº TÜKÖRFùрòGÉP
árvíztûрô tükörfúrógép
В CWI-2 кодирование было разработано таким образом, чтобы текст оставался достаточно хорошо читаемым, даже если дисплей или принтер использует значение по умолчанию CP 437 кодирование. Эта кодировка широко использовалась в 1980-х и начале 1990-х годов, но в настоящее время полностью устарела.
Окна-1250Окна-1252ÁRVÍZTÛрÕ TÜKÖRFÚRÓGÉP
árvíztûрх tükörfúrógép
По умолчанию используется западная кодировка Windows вместо центральноевропейской. Только-Ő (õ-Õ) и ű-Ű (û-Û) неверны, но текст полностью читаем. На сегодняшний день это самая распространенная ошибка; из-за незнания это часто встречается на веб-страницах или даже в печатных СМИ.
CP 852Окна-1250µRVÖZTëрŠ ТšKРФéрргп
rvˇztűr тk"рфŁр˘граммп
Среднеевропейская кодировка Windows используется вместо кодировки DOS. Использование правильно.
Окна-1250CP 852RVZTрŇ ТKЯРФрËгп
ßrvÝztűr§ тРk÷рф˙рˇграммÚп
Кодировка DOS из Центральной Европы используется вместо кодировки Windows. Использование правильно.
Цитата для печати7-битный ASCII= C1RV= CDZT= БДр= D5 Т= DCK= D6РФ= DAр= D3г= C9п
= E1rv= EDzt= FBр= F5 т= FCk= F6рф= FAр= F3грамм= E9п
В основном вызвано неправильно настроенными почтовыми серверами, но может возникать в SMS сообщения на некоторых сотовых телефонах.
UTF-8Окна-1252à RVà ZTÅ °рÅ ТÃœKÖРФВ качестверà "гà ‰п
árvÃztÅ ±рÅ ‘ тüköрфúрóграммà ©п
В основном это вызвано неправильно настроенными веб-службами или клиентами веб-почты, которые не были протестированы для международного использования (поскольку проблема остается скрытой для текстов на английском языке). В этом случае актуальный (часто генерируемый) контент находится в UTF-8; однако он не настроен в HTML заголовки, поэтому механизм визуализации отображает его в западной кодировке по умолчанию.
Примечание: символы красного цвета неверны.

Польский

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

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

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

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

Моджибаке в просторечии можно назвать кракозябры (кракозя́бры [krɐkɐˈzʲæbrɪ̈]) в русский, который был и остается осложненным несколькими системами кодирования Кириллица.[6] В Советский союз и рано Российская Федерация развитый KOI-кодировки (Код Обмен Информацией, Код Обмена Информацией, что переводится как «Код для обмена информацией»). Это началось с 7-битной только кириллицы KOI7, на основе ASCII но с заменой латинских и некоторых других символов буквами кириллицы. Потом появился 8-битный KOI8 кодировка, которая является Расширение ASCII который кодирует кириллические буквы только старшими октетами, соответствующими 7-битным кодам из KOI7. Именно по этой причине текст KOI8, даже русский, остается частично читаемым после удаления восьмого бита, что считалось основным преимуществом в эпоху 8BITMIME - не осведомленные почтовые системы. Например, слова "Школа русского языка" школа русского языка, закодированный в KOI8, а затем прошедший через процесс удаления старших битов, в итоге отображается как «[KOLA RUSSKOGO qZYKA». Со временем KOI8 приобрел разные вкусы для русского / болгарского (КОИ8-Р ), Украинец (КОИ8-У ), Белорусский (КОИ8-РУ) и даже Таджикский (КОИ8-Т).

Между тем на Западе Кодовая страница 866 поддержанный украинец и Белорусский а также русский /болгарский в MS-DOS. За Майкрософт Виндоус, Кодовая страница 1251 добавлена ​​поддержка сербский и другие славянские варианты кириллицы.

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

До появления Unicode необходимо было согласовывать кодировку текста со шрифтом, используя ту же систему кодирования. Невыполнение этого условия приводило к нечитаемости тарабарщина чей конкретный вид варьировался в зависимости от точного сочетания кодировки текста и кодировки шрифта. Например, попытка просмотра кириллического текста, отличного от Unicode, с использованием шрифта, ограниченного латинским алфавитом, или с использованием кодировки по умолчанию («западная») обычно приводит к тексту, который почти полностью состоит из гласных с диакритическими знаками. (KOI8 "Библиотека" (библиотека, библиотека) становится "âÉÂÌÉÏÔÅËÁ".) Использование кодовой страницы 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.

пример
Русский пример:Кракозябры (кракозябры, мусорные символы)
Кодировка файлаНастройка в браузереРезультат
MS-DOS 855ISO 8859-1Á ÆÖóÞ ¢ áñ
КОИ8-РISO 8859-1ëÒÁËÏÚÑÂÒÙ
UTF-8КОИ8-Рп я─п╟п╨п╬п╥я▐п╠я─я▀

Югославские языки

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

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

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

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

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

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

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

Кавказские языки

Системы письма некоторых языки Кавказа регион, включая скрипты Грузинский и Армянский, может производить моджибаке. Особенно остро эта проблема стоит в случае ArmSCII или ARMSCII, набор устаревших кодировок символов для армянского алфавита, которые были заменены стандартами Unicode. ArmSCII не получил широкого распространения из-за отсутствия поддержки в компьютерной индустрии. Например, Майкрософт Виндоус не поддерживает это.

Азиатские кодировки

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

Японский

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

Китайский

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

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

Исходная кодировкаРассматривается какРезультатПервоначальный текстПримечание
Big5ГБ瓣 в三國 志 11 威力 加強 VersionМножество пустых или не отображаемых символов с случайными китайскими иероглифами. Красные символы считаются Персонажи частного использования.
Shift-JISГБ暥 帤 壔 偗 僥 僗 僩文字 化 け テ ス トКана отображается как символы с радикалом 亻, а кандзи - другими символами. Большинство из них крайне необычны и не используются на практике в современном китайском языке.
EUC-KRГБ叼 力 捞 钙 胶 抛 农 聪 墨디제이 맥스 테크니카Случайные распространенные символы упрощенного китайского, которые в большинстве случаев не имеют смысла. Легко идентифицировать благодаря пробелам между каждыми несколькими символами.

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

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

Индийский текст

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

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

Идея простого текста требует, чтобы операционная система предоставляла шрифт для отображения кодов Unicode. Этот шрифт отличается от ОС к ОС для Singhala и делает орфографически неправильные глифы для некоторых букв (слогов) во всех операционных системах. Например, «реф», краткая форма «р», является диакритическим знаком, который обычно ставится поверх простой буквы. Однако неправильно размещать некоторые буквы, такие как «я» или «ля», но это происходит во всех операционных системах. Похоже, это ошибка внутреннего программирования шрифтов. В Macintosh / iPhone комбинации muurdhaja l (темный l) и «u», а также его длинная форма дают неправильные формы.

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

Мьянма / Бирманский

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

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

Африканские языки

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

арабский

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

Примеры

Кодировка файлаНастройка в браузереРезультат
Пример арабского языка: (Всеобщая декларация прав человека )
Браузерный рендеринг:الإعلان العالمى لحقوق الإنسان
UTF-8Окна-1252ï »¿Ø§Ù" Ø ¥ ع٠"ا٠† اÙ" عا٠"Ù… Ù ‰ Ù" Øقو٠‚اÙ" Ø ¥ Ù † سا٠†
КОИ8-РО╩ © ь╖ы└ь╔ь╧ы└ь╖ы├ ь╖ы└ь╧ь╖ы└ы┘ы┴ ы└ь╜ы┌ы┬ы┌ ь╖ы└ь╔ы├ьЁь ╖ы├
ISO 8859-5яЛПиЇй иЅиЙй иЇй иЇй иЙиЇй й й й ий й й иЇй иЅй иГиЇй
CP 866я╗┐╪з┘Д╪е╪╣┘Д╪з┘Ж ╪з┘Д╪╣╪з┘Д┘Е┘Й ┘Д╪н┘В┘И┘В ╪з┘Д╪е┘Ж │╪з┘Ж
ISO 8859-6ُ ؛؟ ظ ع ظ ع ظ ع ظ ع ظ ظ ع ع ع ع ظع ع ع ظ ع ظ ع ظ ظ ع
ISO 8859-2ا٠ؼؚ٠ا٠ا٠ؚا٠٠٠٠Ř٠٠٠ا٠ؼ٠ساŮ
Окна-1256Окна-1252ÇáÅÚáÇä ÇáÚÇáãì áÍÞæÞ áÅäÓÇä

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

Смотрите также

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

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

  • Буш скрыл факты
  • тофу (значения) § характер тофу

Рекомендации

  1. ^ а б Кинг, Ричи (2012). «Будет ли Юникод скоро универсальным кодом? [Данные]». IEEE Spectrum. 49 (7): 60. Дои:10.1109 / MSPEC.2012.6221090.
  2. ^ ВИНДИШМАН, Стефан (31 марта 2004 г.). "curl -v linux.ars (интернационализация)". Ars Technica. Получено 5 октября 2018.
  3. ^ «Рекомендации по расширенным атрибутам». 2013-05-17. Получено 2015-02-15.
  4. ^ "Список рассылки Unicode в почтовом клиенте Eudora". 2001-05-13. Получено 2014-11-01.
  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. ^ «КНР ГБК (XGB)». Архивировано из оригинал на 2002-10-01. Карта конверсии между Кодовая страница 936 и Unicode. Необходимо выбрать вручную GB18030 или GBK в браузере для правильного просмотра.
  10. ^ Коэн, Ноам (25 июня 2007 г.). «Некоторые ошибки не поддаются исправлению: опечатка в логотипе Википедии разрушает санскрит». Нью-Йорк Таймс. Получено 17 июля, 2009.
  11. ^ «Контент перемещен (Windows)». Msdn.microsoft.com. Получено 2014-02-05.
  12. ^ а б «Unicode в, Zawgyi out: современность, наконец, догоняет цифровой мир Мьянмы». The Japan Times. 27 сентября 2019 г.. Получено 24 декабря 2019. 1 октября - «U-Day», когда Мьянма официально примет новую систему ... Microsoft и Apple много лет назад помогали другим странам стандартизировать систему, но западные санкции означали, что Мьянма проиграла.
  13. ^ а б Гочкис, Гриффин (23 марта 2016 г.). «Битва шрифтов». Граница Мьянмы. Получено 24 декабря 2019. С выпуском пакета обновления 2 для Windows XP были поддержаны сложные сценарии, что позволило Windows отображать совместимый с Unicode бирманский шрифт, такой как Myanmar1 (выпущенный в 2005 году). ... Мязеди, BIT, а позже Zawgyi ограничили проблему визуализации, добавив дополнительные кодовые точки, которые были зарезервированы для этнических языков Мьянмы. Повторное отображение не только предотвращает поддержку этнических языков в будущем, но и приводит к появлению системы набора текста, которая может сбивать с толку и неэффективна даже для опытных пользователей. ... Huawei и Samsung, два самых популярных бренда смартфонов в Мьянме, заинтересованы только в том, чтобы захватить самую большую долю рынка, а это значит, что они поддерживают Zawgyi из коробки.
  14. ^ а б Син, Тан (7 сентября 2019 г.). «Единая система шрифтов, поскольку Мьянма готовится к переходу с Zawgyi на Unicode». Восходящие голоса. Получено 24 декабря 2019. Стандартные шрифты Unicode для Мьянмы никогда не были широко распространены, в отличие от частного и частично совместимого с Unicode шрифта Zawgyi. ... Unicode улучшит обработку естественного языка
  15. ^ «Зачем нужен Юникод». Код Google: проект Zawgyi. Получено 31 октября 2013.
  16. ^ «Мьянманские письменности и языки». Часто задаваемые вопросы. Консорциум Unicode. Получено 24 декабря 2019. "UTF-8" технически не применяется к специальным кодировкам шрифтов, таким как Zawgyi.
  17. ^ ЛаГроу, Ник; Прузан, Мири (26 сентября 2019). «Интеграция автоконверсии: путь Facebook от Zawgyi к Unicode - Facebook Engineering». Facebook Engineering. Facebook. Получено 25 декабря 2019. Это затрудняет общение на цифровых платформах, так как контент, написанный в Unicode, кажется пользователям Zawgyi искаженным, и наоборот. ... Чтобы лучше охватить свою аудиторию, производители контента в Мьянме часто размещают в одном посте как Zawgyi, так и Unicode, не говоря уже об английском или других языках.
  18. ^ Пила Йи Нанда (21 ноября 2019 г.). «Мьянма переходит на Unicode на два года: разработчик приложений». The Myanmar Times. Получено 24 декабря 2019.

внешняя ссылка