Иероглифы-призраки в Unicode: как ошибка каталогизации 1978 года породила несуществующие символы

В 1978 году японское Министерство экономики, торговли и промышленности утвердило кодировку, впоследствии получившую название JIS X 0208, она и сегодня остаётся ключевым эталоном для японских текстовых кодировок. Вскоре после публикации стандарта заметили странность: у нескольких добавленных иероглифов не было явного источника, никто не мог сказать, что они означают и как читаются. Их назвали «иероглифами-призраками» (幽霊文字).
Загадка оставалась нерешённой много лет, пока в 1997 году не начали расследование. По правилам у каждого символа JIS должен был быть задокументированный источник, но на практике запись часто ограничивалась названием документа без указания страницы. Один из самых частых источников, «Обзор административно-территориального деления Японии» (国土行政区画総覧), полный справочник географических названий страны, на деле оказался не компактным атласом, а изданием из семи томов примерно по девятьсот страниц каждый: искать в нём один символ без номера страницы было практически нереально.
Тем не менее, опросив каталогизаторов, работавших над стандартом, следователи восстановили происхождение большинства иероглифов-призраков, это оказались случайные ошибки каталогизации. Пример, иероглиф 妛, который должен был обозначать сочетание «山 над 女» («гора над женщиной»), встречающееся в названии реального места. Поскольку составные иероглифы тогда ещё не умели печатать как единый знак, 山 и 女 напечатали отдельно, вырезали, наклеили на лист бумаги и сняли с него копию для архива. На копии шов между двумя приклеенными кусочками бумаги стал похож на черту, и по ошибке вошёл в состав иероглифа. Исходный, правильный символ (𡚴) добавили в JIS и Unicode значительно позже, и, по словам автора материала, он до сих пор не отображается на большинстве сайтов.
Только один иероглиф, 彁, остался необъяснённым полностью, ни источника, ни исторического прецедента для него найти не удалось. Наиболее вероятная версия, что это ошибка прочтения похожего иероглифа 彊, но установить конкретный случай, где именно она произошла, не смогли. Один из источников, на которые ссылается материал, фиксирует, что 彁 по ошибке использовали в оцифрованной японской газете эпохи Тайсё, по всей видимости, из-за того что печать похожего иероглифа 彊 на странице выцвела.
Поскольку стандарт JIS X 0208 получил широкое распространение, его иероглифы-призраки перекочевали и в Unicode, где теперь существуют как обычные символы кодовой таблицы. У самого Unicode есть и собственный, отдельный набор «призраков», они появились уже при унификации иероглифов CJK; сколько их и какие именно, автор не уточняет, как и точное число иероглифов-призраков в самом JIS X 0208. Вывод автора: если ошибка успела закрепиться в широко принятом стандарте, она остаётся в нём практически навсегда, по словам автора, «при таком раскладе они, судя по всему, останутся с человечеством навсегда», по-тихому всплывая в таблицах символов на каждом компьютере.
Ключевые факты
- В 1978 году японское Министерство экономики, торговли и промышленности утвердило кодировку JIS X 0208, в неё вошли несколько иероглифов без источника, значения и произношения, получивших название «иероглифы-призраки» (幽霊文字).
- Расследование 1997 года выяснило происхождение большинства из них: иероглиф 妛 родился как ошибка каталогизации, 山 и 女 напечатали отдельно, вырезали, склеили на листе и скопировали, а шов между кусочками бумаги на копии приняли за черту символа.
- Только один символ, 彁, так и остался необъяснённым, вероятная причина в ошибочном прочтении похожего иероглифа 彊, но конкретный случай найти не удалось.
- Через общее принятие стандартов JIS иероглифы-призраки попали и в Unicode, где, помимо них, есть собственный отдельный набор «призраков», появившийся при унификации CJK-иероглифов.
- Один из источников, на которые ссылается материал, документирует случай, когда 彁 по ошибке использовали в оцифрованной японской газете эпохи Тайсё, из-за выцветшей печати похожего иероглифа 彊.
Почему это важно
История иероглифов-призраков показывает, что даже фундаментальные технические стандарты, те, на которых, по словам автора материала, потенциально держится «каждый компьютер на планете», могут содержать символы, возникшие из цепочки случайных канцелярских ошибок при подготовке макета. Как только такая ошибка попадает в опубликованный и широко принятый стандарт, откатить её уже нельзя: слишком много систем и текстов завязано на существующую кодовую таблицу, поэтому «призрак» остаётся в ней навсегда. Материал также ссылается на неожиданную параллель из искусства: художник Сюй Бин вручную напечатал книгу «天书» («Книга с небес»), целиком состоящую из иероглифов, которые он выдумал сам, то есть символы без значения рождаются не только по ошибке, но и намеренно, как художественный приём.
Кому это важно
В первую очередь это касается разработчиков шрифтов, систем рендеринга текста и любых программ, обрабатывающих японский и вообще CJK-текст (китайский, японский, корейский): формально эти иероглифы, часть стандарта, и их нужно уметь корректно отображать, даже если они не несут смысла. Материал будет интересен лингвистам и исследователям истории письменности, которые изучают, как на практике создавались кодировочные стандарты, а также читателям, которым просто любопытно, какие случайности скрыты в инфраструктуре, которой пользуется каждый компьютер.
Как это применить
Для тех, кто ведёт собственные стандарты, каталоги или спецификации, это практический урок: при переносе и копировании записей важно фиксировать точный источник и номер страницы, ссылка вида «взято из такого-то документа» без страницы способна превратить многотомный источник (как семитомный «Обзор административно-территориального деления Японии» из статьи) в практически неаудируемый. Для разработчиков, которые работают с японским или CJK-текстом: встретив в данных незнакомый иероглиф без очевидного значения, не стоит сразу списывать это на баг или повреждение данных, вполне вероятно, что это один из задокументированных иероглифов-призраков стандарта, и есть смысл сверить его со списками таких символов.
Можно ли доверять
Материал, личный блог-пост (dampfkraft.com); в захваченном тексте нет ни имени автора, ни даты публикации. При этом фактура выглядит добротно: автор опирается на реальное задокументированное расследование 1997 года, называет конкретные иероглифы и описывает механизм ошибки (妛, 彁), а среди источников, не только японский глоссарий терминов, который сам ссылается на материалы расследования 1997 года, но и заметка «Котоба-магазина» цифрового издания газеты Asahi Shimbun с реальным случаем ошибочного использования 彁. Для научно-популярного разбора это достаточно надёжная цепочка источников, но это не первичный академический источник, и для независимой проверки пришлось бы читать японоязычные материалы напрямую.
Риски и подводные камни
Главный риск здесь не технический, а системный: попав в широко принятый стандарт, ошибка становится практически необратимой, убрать её означало бы сломать совместимость с уже существующими текстами и системами, поэтому «призрак» остаётся навсегда, как и отмечает сам автор. Для разработчиков это постоянный технический долг: шрифты и системы рендеринга обязаны бесконечно поддерживать бессмысленные символы просто потому, что они формально входят в таблицу. Есть предел и у самой археологии таких ошибок: даже целенаправленное расследование 1997 года не смогло объяснить происхождение 彁, не все подобные случаи поддаются восстановлению. Отдельно стоит иметь в виду: у самого Unicode есть свой, отдельный набор иероглифов-призраков, появившийся при унификации CJK, но статья его не раскрывает, ни количества, ни примеров в тексте нет.
«При таком раскладе они, судя по всему, останутся с человечеством навсегда.»
— автор материала