Моя любимая мозоль смотрит на очень много программных проектов, которые имеют горы кода для поддержки набора символов. Не поймите меня неправильно, я за совместимость, и я рад, что текстовые редакторы позволяют открывать и сохранять файлы в нескольких наборах символов. Что меня раздражает, так это то, что распространение неуниверсальных кодировок символов называется «надлежащей поддержкой Юникода», а не «проблемой».
Например, позвольте мне выбрать PostgreSQL и его поддержку набора символов . PostgreSQL работает с двумя типами кодировок:
- Кодировка клиента: используется для связи между клиентом и сервером.
- Кодировка сервера: используется для внутреннего хранения текста в базе данных.
Я могу понять, почему поддержка большого количества клиентских кодировок - это хорошо. Это позволяет клиентам, которые не работают в UTF-8, обмениваться данными с PostgreSQL без необходимости выполнять преобразование. Чего я не понимаю: почему PostgreSQL поддерживает несколько серверных кодировок? Файлы базы данных (почти всегда) несовместимы от одной версии PostgreSQL к другой, поэтому совместимость с разными версиями здесь не проблема.
UTF-8 - это единственный стандартный ASCII-совместимый набор символов, который может кодировать все кодовые точки Unicode (если я ошибаюсь, дайте мне знать). Я нахожусь в лагере, что UTF-8 - лучший набор символов, но я готов мириться с другими универсальными наборами символов, такими как UTF-16 и UTF-32.
Я считаю, что все неуниверсальные наборы символов должны быть устаревшими. Есть ли веская причина, по которой они не должны?