WDH За кодирането на символи

Национални кодировки

Дефиниции

Нека започнем с дефиниране на понятия. Съвременните компютри съхраняват цялата информация под формата на двоични байтове, тоест 8-битови единици, които могат да приемат стойност от 0 до 255. За да съхраняваме не цифрова, а текстова информация в паметта на компютъра, трябва да определим кой байт или байта всеки символ, който може да се появи в нашия текст, ще бъде кодиран. Това съответствие между символите и техните байтове за кодиране се нарича набор от символи. Лесно е да се разбере, първо, че всяко кодиране е разработено за определен човешки език (по-точно, за конкретна система за писане), и, второ, че за всеки език такива кодировки могат да бъдат измислени, колкото искате. Познавайки човешката природа, е лесно да се досетим, че те ще измислят много повече от необходимото. Естествено се случи така: най-модерната библиотека от функции за прекодиране ICU (International Components for Unicode) от IBM Corporation поддържа над 170 различни кодировки.

Латински кодировки

Нека разгледаме по-отблизо кодирането на тези скриптове, които най-често се срещат от руски разработчик, т.е. латиница и кирилица. За латинската азбука днес се използват две основни кодировки: ASCII и EBCDIC. ASCII (Американски стандартен код за обмен на информация) ? това е седембитова таблица с кодове (кодове с символи 00-7F или 0-127 след десетичната запетая), която се превърна в стандарт за малки и средни компютри и следователно в стандарт за мрежата. Съдържа байтове с шестнадесетични кодове 00 ? 1F и 7F се използват за кодиране на контролни (непредставящи се) символи, а останалите кодират следните символи:

кодовата таблица

EBCDIC (разширен двоично кодиран десетичен код за обмен) ? това е осембитово кодиране (символни кодове 00 - FF или 0 - 255 десетични), прието на всички компютри на IBM, с изключение на компютри. Може да не искаме да го споменаваме, но тъй като XML се развива като основен формат за пренос на данни в мрежата, все по-често ще попадаме на XML файлове, генерирани на големи машини. Тук байтове с кодове 00 ? 3F кодират контролни знаци, а останалите се използват по следния начин:

кодови таблици

Кодировки на кирилица

Кодировките на "нелатински" азбучни скриптове са подредени по следния начин. Те се кодират в осембитова таблица (1 байт = 1 знак), т.е. числа 00 - FF (0 - 255 десетични), така че долната половина на кодовата таблица (кодове 00 - 7F или 0 - 127 десетични) съответства на ASCII, а горната половина (кодове 80 - FF или 128 - 255 десетични) съдържа националното кодиране, т.е. руски букви в руски кодови таблици, турски букви на турски и т.н. Тази организация на националните кодови таблици ви позволява правилно да показвате и обработва латински букви, цифри и пунктуационни знаци на всеки компютър, независимо от системните му настройки. Точно по този начин са подредени по-специално руските кодови таблици, така че да можем да разгледаме по-нататък само по-старата половина от тях.