В началото на 90-те, когато СССР се разпадна и границите на Русия бяха отворени, започнахме да получаваме софтуерни продукти от западното производство. Естествено, всички бяха англоезични. В същото време Интернет започва да се развива. Проблемът с русификацията на ресурси и програми стана остро. Тогава е изобретено руското кодиране на Windows 1251. Тя ви позволява правилно да показвате буквите на славянските азбуки:
- руски език;
- украински;
- Беларус;
- сръбски;
- български език;
- македонски.
Разработката е проведена от руското представителство на Microsoft съвместно с компаниите "Диалог" и "Параграф". Основата беше взета от направените разработки, които през 1990-91 г. бяха в обращение сред малкото ИТ идеолози в Русия.
Към днешна дата е разработен по-универсален начин за кодиране на знаци - UTF-8 (Unicode). Той представлява почти 90% от целия софтуер и уеб ресурси. Windows 1251 се използва в 1,6% от случаите. (Информация за проучвания на уеб технологиите)
Utf 8 или Windows 1251 кодиране?
За да отговорите на този въпрос, трябва да разберете малко какво е кодирането и как се различават. Текстовата информация, както и всяка друга, се съхранява в компютъра в кодиран вид. По-лесно е да го представим като числа. Всеки символ може да заема един или повече байта. Windows 1251 е еднобайтово кодиране, а UTF-8 е осембайтов. Това означава, че в Windows 1251 могат да бъдат кодирани само 256 знака..
Тъй като всичко се свежда до бинарната система, а байтът е 8 бита (0 и 1), максималният брой комбинации е 28 = 256. Unicode ви позволява да представяте много по-голям брой символи и може да се разпредели по-голям размер за всеки.
От тук следват предимствата на Unicode:
- В заглавката на сайта трябва да се посочи кодирането, което се използва. В противен случай вместо символи ще се покажат "крокодили". А Unicode е стандартен за всички браузъри - те го хващат в движение като по подразбиране.
- Символите на сайта ще останат същите, независимо в коя държава се зарежда ресурсът. Това не зависи от географското местоположение на сървърите, а от езика на софтуера на клиентските работни станции. Жител на Португалия очевидно използва клавиатура и целият софтуер, включително операционната система, на родния си език. Най-вероятно в компютъра му няма Windows 1251. И ако е така, тогава сайтовете на руски език няма да се отворят правилно. Unicode от своя страна е "свързан" към всяка ОС на който и да е език.
- UTF-8 ви позволява да кодирате повече знаци. В момента се използват 6 байта от 8, а руските символи са кодирани в два байта.
Ето защо е за предпочитане да се използва универсално кодиране, а не високоспециализирано, което се използва само в славянските страни.
Таблица за кодиране на Windows 1251
За програмистите и разработчиците на уебсайтове може да е необходимо да знаят номерата на символите. За това се използват специални таблици за кодиране. По-долу е дадена таблица за Windows 1251.
Какво да направите, ако кодирането на командния ред е прелетяло?
Понякога може да срещнете ситуация, при която в командния ред вместо руснаци се показват непонятни символи. Това означава, че има проблем с кодирането на командния ред на Windows 7. Защо 7? Защото, като се започне с 8-ма версия, се използва UTF-8, а в седемте Windows 1251.
Командата chcp 866 може да помогне едновременно да се реши проблемът. Текущата сесия ще работи правилно. Но за да коригирате драстично грешката, трябва регистър.
- Натиснете Win + R и въведете regedit. Това ще ви позволи да влезете в редактора на системния регистър..
- Отидете до клона HKEY_CURRENT_USER \ Console и вижте на какво е равна стойността за CodePage. Най-вероятно ще видите нещо различно от 866 (правилната опция).
- Точно на 866 в десетични.
- Затворете и отново отворете командния ред. Ситуацията трябва да се коригира.
Приятен ден!