В Кремле объяснили стремительное вымирание россиян
О кодировке кирилицы для Тараса Шевченко Назад
О кодировке кирилицы для Тараса Шевченко
Компьютеры придумали англичане (американцы сделали бизнес), поэтому родным для компов является английский.
Национальные алфавиты - это все остальные, которые неанглийские.

Кодирование символов и вообще клавиш на клаве до появления UTF"а было восьмибитным и даже (для KOI8) семибитным.
Это значит, что для кодирования клавиш на клаве и символов текста (я тут намеренно абстрагируюсь от сканкодов и прочих тонкостей) отведено было только 256 штук, как их назвать? Ячеек таблицы, скажем.

28 железно занимает английский алфавит, затем знаки пунктуации, символы для рисования таблиц, спецсимволы (например Esc - код 27, Enter -13, просто пробел - 32), итого под национальный алфавит европейских языков едва-едва оставалось около 30 свободных ячеек, а уж про китайский речь вообще не шла - иероглифов слишком много.

Таким образом одновременно текст мог содержать только два набора символов: английский и какой-нибудь один вроде французского или русского.
Без гемороя и шаманских танцев с бубном создать три-язычный или больше текст было невозможно.

Так например написать текст на русском с цитатами на французском или даже на украинском не представлялось возможным (привет Л.Толстому и Т.Шевченко).

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

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

Наконец умные люди почесали репу и решили, что пора бы разобраться с этим вопросом по настоящему (а не по микрософтовски). Пришла пора UTF, т.е. многобайтной кодировки. Теперь места в таблице навалом (не 256 ячеек, а 65 тыс. как минимум) - хватает на все алфавиты в мире и еще остается изрядно для инопланетян. Пишите товарищи толстые, хоть на пяти, хоть на десяти языках вперемешку.

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

Поэтому, в силу косности мышления программистов (например меня), которые живут по поговорке: "если что-то работает, не трогай - пусть себе работает", многие большие базы данных до сих пор хранят тексты не в прогрессивном и универсальном (но прожорливом) UTF"е, а в привычном, быстром и экономном KOI8.

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

Вот такая история. И напоследок полезная ссылка. Ребята Тёмы Лебедева сделали расшифровщик испорченных кодировок. Если вы наступили-таки на грабли кодировки вам сюда.


Александр Немченко

Док. 471308
Опублик.: 06.08.08
Число обращений: 248

  • Немченко Александр Борисович

  • Разработчик Copyright © 2004-2019, Некоммерческое партнерство `Научно-Информационное Агентство `НАСЛЕДИЕ ОТЕЧЕСТВА``