Перекодировать текст из ISO-8859-3 ↓
Среди частей стандарта ISO-8859 есть таблица с довольно необычной судьбой. Её создавали для группы языков Южной Европы, но в итоге она запомнилась прежде всего двумя из них: мальтийским, государственным языком небольшого островного государства в Средиземном море, и эсперанто, искусственным языком, придуманным в конце XIX века для международного общения. Кодировка получила номер ISO-8859-3 и второе имя Latin-3, а утверждена была в 1988 году.
По замыслу составителей, Latin-3 должна была обслуживать турецкий, мальтийский, галисийский и эсперанто, а заодно поддерживать основные западноевропейские языки. Для этого из Latin-1 убрали часть символов и поставили на их место нужные буквы. Так в таблице появились мальтийские "ħ" с перечёркнутой палочкой, "ċ", "ġ" и "ż" с точкой сверху, а также буквы эсперанто с циркумфлексом: "ĉ", "ĝ", "ĥ", "ĵ", "ŝ" и "ŭ" с краткой.
С турецким языком у кодировки не сложилось. Через год после выхода Latin-3 была утверждена ISO-8859-9, специально предназначенная для турецкого, и пользователи из Турции выбрали её. В результате ISO-8859-3 так и осталась кодировкой для небольшого круга языков. Зато для мальтийского и эсперанто она долгое время была едва ли не единственным стандартным способом записать текст без искажений, и в сообществах этих языков её хорошо знали.
Эсперантисты, впрочем, нередко обходились и без неё. Задолго до компьютеров в эсперанто существовала так называемая "система h", в которой буквы с циркумфлексом заменялись сочетанием с буквой h: "ch" вместо "ĉ", "gh" вместо "ĝ". В эпоху электронной почты появилась ещё и "система x", где вместо h ставилась латинская x. Такие замены позволяли писать на эсперанто даже в чистом ASCII, и многие пользовались ими вместо специальной кодировки.
Ошибка при чтении текста в Latin-3 как в западноевропейской кодировке выглядит характерно. Фраза на эсперанто "Ĉu vi parolas Esperanton?", что означает "Вы говорите на эсперанто?", превращается в "Æu vi parolas Esperanton?": на месте буквы с циркумфлексом оказывается лигатура "Æ". Мальтийское сочетание "Ħal", с которого начинаются названия многих деревень, становится "¡al" с перевёрнутым восклицательным знаком. Остальные буквы при этом остаются на местах, поэтому ошибка бросается в глаза только в отдельных словах.
У ISO-8859-3 есть любопытная особенность: в таблице остались неиспользованные позиции. Составители освободили часть мест под буквы, а затем не нашли, чем их заполнить, и эти коды так и не получили символов. Программы, строго следующие стандарту, считают такие байты ошибочными, а снисходительные декодеры просто пропускают их. Это редкий случай для восьмибитной кодировки, где обычно используется каждая из 256 позиций.
Сегодня и мальтийский язык, и эсперанто полностью поддерживаются Юникодом, и все их буквы входят в UTF-8. Сайты, электронные словари и книги на этих языках давно используют современный формат, а Latin-3 сохранилась главным образом в старых документах, архивах рассылок и в списках поддерживаемых кодировок программ.
Если в тексте на эсперанто или мальтийском на месте букв с циркумфлексом, точкой или чертой стоят символы вроде "Æ" или "¡", скорее всего, документ был записан в ISO-8859-3, а прочитан в западноевропейской кодировке. Укажите Latin-3 исходной кодировкой и преобразуйте текст в UTF-8.