Перекодировать текст из ISO-8859-2 ↓
Польский, чешский, словацкий, венгерский, словенский, хорватский: у этих языков латинский алфавит, но букв у них заметно больше, чем у английского. Галочки, хвостики, точки и двойные штрихи над буквами нельзя было записать ни в ASCII, ни в западноевропейской Latin-1. В 1987 году международная организация по стандартизации утвердила вторую часть стандарта ISO-8859, предназначенную именно для этих языков. Кодировка получила номер ISO-8859-2 и второе имя Latin-2.
Устроена она так же, как и другие таблицы семейства. Нижняя половина совпадает с ASCII, позиции с 128 по 159 отведены под управляющие коды, а верхняя часть содержит национальные буквы. В неё вошли польские буквы с огонеком и перечёркнутая "ł", чешские и словацкие буквы с гачеком, венгерские гласные с двойным акутом, словенские и хорватские буквы, а также немецкие умлауты. Благодаря этому Latin-2 подходила для большинства языков Центральной и Восточной Европы, использующих латиницу.
На практике у кодировки сразу появился сильный соперник. Microsoft создала для Windows собственную таблицу Windows-1250 с тем же набором букв, но расположенных частично на других местах. Например, польские буквы "ą", "ś" и "ź" в двух кодировках имеют разные коды. В результате тексты из Windows и из Unix-систем оказались несовместимыми, хотя выглядели почти одинаково. Для польского языка проблема была особенно острой, и в Польше долгое время шли споры о том, какую из двух кодировок считать правильной для интернета.
Ошибки при смешении Latin-2 и Windows-1250 особенно коварны, потому что текст остаётся почти читаемым. Большинство букв совпадает, и только отдельные символы подменяются. Фраза "Żółw, łódź, Śląsk", записанная в ISO-8859-2 и прочитанная как Windows-1250, превращается в "Żółw, łódĽ, ¦l±sk". Если же тот же текст открыть как западноевропейскую Windows-1252, слово "Żółw" станет "¯ó³w". Узнать такую путаницу можно по дробям, верхним индексам и другим неожиданным символам внутри слов.
Долгое время Latin-2 оставалась основной кодировкой центральноевропейских языков в мире Unix, электронной почты и веба. На ней работали польские и чешские новостные сайты, почтовые рассылки и университетские серверы. В заголовках писем и страниц можно было встретить метку "iso-8859-2", а в настройках браузеров соответствующий пункт назывался "Центральноевропейская (ISO)". Windows-1250 при этом использовалась на рабочих станциях, и многим сайтам приходилось держать две версии страниц.
У кодировки были и недостатки. Как и Windows-1250, она содержит румынские буквы с седильей вместо правильной запятой, из-за чего румынские тексты записывались формально неверными символами. Для решения этой проблемы позднее появилась отдельная кодировка ISO-8859-16. Кроме того, в Latin-2 нет типографских кавычек, тире и знака евро, которые были добавлены в Windows-1250.
Сегодня центральноевропейские сайты, как и все остальные, перешли на UTF-8, где буквы всех этих языков могут свободно стоять рядом с кириллицей, греческим и иероглифами. Latin-2 сохранилась в старых архивах, документах, базах данных и конфигурационных файлах. Её до сих пор поддерживают все основные библиотеки и программы для работы с текстом.
Если в польском, чешском или венгерском тексте вместо отдельных букв стоят символы вроде "¦", "±" или "Ľ", а остальные слова читаются нормально, почти наверняка ISO-8859-2 перепутали с Windows-1250. Укажите правильную исходную кодировку и преобразуйте текст в UTF-8, и все диакритические знаки вернутся на место.