Отличие utf-8 и windows 1251. Рассмотрим, чем отличаются две кодировки «utf-8 и windows 1251» в теории и на практике. И как победить некоторые проблемы для кириллицы в utf-8!?
О кодировках utf-8 и windows 1251
Самое главное. что нас интересует, как и меня — в чем же отличие кодировок utf-8 и windows 1251. И отличается только кириллица!
Чем отличаются utf-8 и windows 1251
UTF-8 — это много-байтовая кодировка, а Windows- 1251 однобайтовая. И более того, отличие только в кириллице.
Количество байтов кириллицы в UTF-8 будет в 2 раза больше, чем 1). латиницы в UTF-8 и 2). латиницы + кириллицы в Windows- 1251 → пример
Главное отличие кодировок – это используемый набор символов. В UTF-8 гораздо больше количество символов возможно представить, чем в Windows- 1251. Кодировка Windows- 1251 однобайтовая, т.е. представить в ней можно только 255 символов. Для кириллицы, впрочем, этого вполне достаточно, именно поэтому однобайтовые кодировки до сих пор так массово применяются.
Что такое кодировка windows 1251
Windows-1251 – набор символов и кодировка, являющаяся стандартной 8-битной кодировкой для всех русских версий Microsoft Windows. Пользуется довольно большой популярностью. Windows-1251 выгодно отличается от других 8‑битных кириллических кодировок (таких как CP866, KOI8-R и ISO 8859-5) наличием практически всех символов, использующихся в русской типографике для обычного текста; она также содержит все символы для близких к русскому языку языков: украинского, белорусского, сербского и болгарского.
Что такое кодировка UTF-8
UTF-8 – в настоящее время распространённая кодировка, реализующая представление Юникода, совместимое с 8-битным кодированием текста. Нашла широкое применение в операционных системах и веб-пространстве. Текст, состоящий только из символов Юникода с номерами меньше 128, при записи в UTF-8 превращается в обычный текст ASCII. Остальные символы Юникода изображаются последовательностями длиной от 2 до 6 байт.
Символ в кодировке UTF-8 может кодироваться аж 6 байтами (пока используется только 4 и больше не планируется). Для русского языка, например, символ занимает 2 байта. Все символы, которые есть в таблице символов – поддерживаются этой кодировкой. К примеру, если вам нужен знак копирайта (©), то вам не нужно искать особый шрифт или же изображать символов в графическом формате.
Пример вывода текста в кодировках utf-8 латиницы
Когда и если вы прочитали теорию о разнице кодировок utf-8 и windows 1251 — это уже победа!
смайлы
А если вы еще и поняли о чем идет речь, то вы вообще Эйнштейн!
смайлы, то и смысла особого вам читать дальше нет.
А для всех остальных продолжим…
Чем отличается текст в кодировках utf-8 и windows 1251
Теория — это конечно классно и круто, но как обстоит дело на практике!
Как показать отличие двух кодировок!?
У нас на сайте основная кодировка utf-8, и мы не напрягаясь можем посмотреть, что творится с текстом в этой кодировке!
Нам понадобится какой-то текст на латинице:
И… нам нужно такое слово, чтобы имело одинаковое количество букв в слове, ну пусть это будет моё имя…
Пусть это будет слово — «Marat!»
Далее нам потребуется функция var_dump.
И выведем прямо здесь вот такую конструкцию :
var_dump(‘Marat’);
Результат:
string(5) «Marat»
Что мы здесь можем прочитать!?
Что это строка, и что в ней 5 элементов.
Пример вывода текста в кодировках utf-8 кириллицы
Теперь, проделаем тоже самое со строкой на кириллице:
У нас все таже кодировка utf-8.
Но теперь нам понадобится текст на кириллице:
Пусть это будет слово — «Марат!»
Опять var_dump.
И выведем прямо здесь вот такую конструкцию :
var_dump(‘Марат’);
Результат:
string(10) «Марат»
И что мы здесь видим!?
Что количество элементов в строке 10… Если вы читали теорию внимательно, то вот вам показатель того, что одна буква состоит из двух символов, а латиницы это не касается…!
Поэтому, и возникают проблемы с текстом в кодировке utf-8 кириллицы, множество функций тупо не работают.
Как пример…как-то я задолбался со strtolower в utf-8 для кириллицы, что решил написать собственную функцию strtolower, чтобы каждый раз не городить этажерку из нескольких функций…
Пример отличия в кодировках utf-8 и windows 1251
Если вы поленились прочитать два верхних пункта, то ещё раз выведем результаты вывода текста на латинице и на кириллице с одним количеством букв.
Результат вывода var_dump(‘Marat’);:
string(5) «Marat»
Результат var_dump(‘Марат’);:
string(10) «Марат»
Что делать, если функция для кириллицы на utf-8 не работают?
Поскольку я давно занимаюсь сайтами, то могу сказать, что на самом деле таких случаев не так много, когда нужна какая-то специальная функция для обработки кириллицы на utf-8.
Но если уж она возникала, то есть несколько вариантов решения!
Это функции с приставкой «mb_», естественно надо проверять, работает ли она у вас на хостинге.
Второй вариант, это написать собственную функцию, которая будет работать и для латиницы и кириллицы? как это я показал на функции strtolower
И третий вариант перекодировать строку из utf-8 в windows 1251
Рассмотрим, первый попавшийся на ум пример…
Пусть это будет функция str_split и её аналог mb_str_split
print_r (str_split(‘Марат’)); выдаст :
Array
(
[0] => �
[1] => �
[2] => �
[3] => �
[4] => �
[5] => �
[6] => �
[7] => �
[8] => �
[9] => �
)
print_r (mb_str_split(‘Марат’)); выдаст :
Как видим… полный отстой…
Мы далее разбирались с этим здесь.
Как перекодировать строку из utf-8 в windows 1251
Итак… есть третий вариант, борьбы с квадратиками(непонимание кодировки) — перекодировать строку из utf-8 в windows 1251:
iconv(«UTF-8», «windows-1251», $text)
После того, как вы выполнили все намеченные действия с текстом, возвращаем его в исходную кодировку :
iconv(«windows-1251», «UTF-8», $text)
Рассмотрим пример перекодировки текста из UTF-8 в windows-1251 и обратно
Мы использовали var_dump, и он посчитал не правильно, поскольку просто так, на страницу вывести данные с помощью var_dump нельзя, мы использовали вот такой костыль :
ob_start();
var_dump( ‘Марат’ );
echo ob_get_clean();
Теперь попробуем перекодировать строку прямо внутри :
ob_start();
var_dump(iconv(«UTF-8», «windows-1251», ‘Марат’)) ;
echo ob_get_clean() ;
Результат подсчета знаков верный, но видим что слово не было перекодировано обратно :
string(5) «�����»
Исправим:
ob_start();
var_dump(iconv(«UTF-8», «windows-1251», ‘Марат’)) ;
echo iconv(«windows-1251», «UTF-8», ob_get_clean());
Результат :
string(5) «Марат»
Итак… вы видели процесс кодировки и перекодировки текста из utf-8 в windows 1251, а потом обратно!
Вы наверное подумали :
Что за дичь здесь происходит!? Это не дичь! Когда ты внутри, а не снаружи, то все кажется не простым, а очень простым.
И чем больше ты в теме, это просто, как есть, пить, дышать… просто не задумываешься…
Я не говорю, что всегда так, иногда бывает очень трудно какаю-то задачку решить…
смайлы
Что лучше для кириллицы utf-8 или…
Интересный поисковый запрос — «Что лучше для кириллицы utf-8 или…«…
Дело в том, что я выбрал кодировку «utf-8» уже… 14 лет(число динамическое) назад… и… уже сейчас трудно вспомнить, почему именно её… но точно вам могу заявить, что когда-то пользовался «windows-1251″… и у неё были какие-то заморочки, в виде неадекватного вывода информации, что, я волей неволей перешел на «utf-8»
Какие минусы у utf-8?
Одна из самых главных проблем «utf-8» — это многобайтовость…
Да! Это несколько неудобно в самом начале, но для всякой функции, которая не хочет работать с кириллицей, существуют замены.
В процессе создания сайта у вас может возникнуть несколько проблем, которые вы решите и «тупо» забудете об этом…
Задумывался ли я о переходе с кодировки utf-8 на другую?
Смысл задумываться о переходе с кодировки utf-8 на другую, если всё работает так, как нужно!
Как кодировка влияет на отображение сайта, чем отличается UTF-8 от Windows 1251 и где указать кодировку.
В статье:
-
Зачем нужна кодировка
-
Виды кодировок
-
Как определить кодировку на сайте
-
Если кодировка не отображается
-
Где указать кодировку сайта
Разбираем, на что влияет кодировка, нужно ли указывать ее самостоятельно, и почему могут появиться так называемые «кракозябры» на сайте.
Зачем нужна кодировка
Кодировка (Charset) — способ отображения кода на экране, соответствие набора символов набору числовых значений. О ней сообщает строка Content-Type и сервер в header запросе.
Несовпадение кодировок сервера и страницы будет причиной появления ошибок. Если они не совпадают, информация декодируется некорректно, так что контент на сайте будет отображаться в виде набора бессвязных букв, иероглифов и символов, в народе называемых «кракозябрами». Такой текст прочитать невозможно, так что пользователь просто уйдет с сайта и найдет другой ресурс. Или останется, если ему не очень важно содержание:
Google рекомендует всегда указывать сведения о кодировке, чтобы текст точно корректно отображался в браузере пользователя.
Кодировка влияет на SEO?
Разберемся, как кодировка на сайте влияет на индексацию в Яндекс и Google.
Яндекс четко заявляет:
«Тип используемой на сайте кодировки не влияет на индексирование сайта. Если ваш сервер не передает в заголовке кодировку, робот Яндекса также определит ее самостоятельно».
Позиция Google такая же. Поисковики не рассматривают Charset как фактор ранжирования или сигнал для индексирования, тем не менее, она косвенно влияет на трафик и позиции.
Если кодировка сервера не совпадает с той, что указана на сайте, пользователи увидят нечитабельные символы вместо контента. На таком сайте сложно что-либо понять, так что скорее всего пользователи сбегут, а на сайте будут расти отказы.
Поэтому она важна для SEO, хоть и влияет на него косвенно через поведенческие. Пользователи должны видеть читабельный текст на человеческом языке, чтобы работать с сайтом.
Виды кодировок
Существует довольно много видов, но сейчас распространены два:
UTF-8
Unicode Transformation Format — универсальный стандарт кодирования, который работает с символами почти всех языков мира. Символы могут занимать от 1 до 4 байт, такое кодирование позволяет создавать мультиязычные сайты.
Есть несколько вариантов — UTF-8, 16, 32, но чаще используют восьмибитное.
Windows-1251
Этот вид занимает второе место по популярности после UTF-8. Windows-1251 — кодирование для кириллицы, созданное на базе кодировок, использовавшихся в русификаторах операционной системы Windows. В ней есть все символы, которые используются в русской типографике, кроме значка ударения. Символы занимают 1 байт.
Выбор кодировки остается на усмотрение веб-мастера, но UTF-8 используют намного чаще — ее поддерживают все популярные браузеры и распознают поисковики, а еще ее удобнее использовать для сайтов на разных языках.
Определить кодировку страницы своего или чужого сайта можно через исходный код страницы. Откройте страницу сайта, выберите «Просмотр кода страницы» (сочетание горячих клавиш Ctrl+U» в Google Chrome) и найдите упоминание «charset» внутри тега head.
На странице сайта используется кодировка UTF-8:
Узнать вид кодирования можно с помощью «Анализа сайта». Сервис проверяет в том числе и техническую сторону ресурса: анализирует серверную информацию, определяет кодировку, проверяет редиректы и другие пункты.
С помощью этого же сервиса можно проверить корректность указанного кодирования. Аудит внутренних страниц «Анализа сайта» проверяет кодировку сервера и сравнивает ее с той, которая указана на внутренней странице. Найденные ошибки Анализ покажет в результатах проверки, и вы сразу узнаете, где нужно исправить.
Проверить кодировку еще можно через сервис Validator.w3, о котором писали в статье о проверке валидации кода. Нужная надпись находится внизу страницы.
Если валидатор не обнаружит Charset, он покажет ошибку:
Но валидатор работает не точно: он проверяет только синтаксис разметки, поэтому может не показать ошибку, даже если кодирование указано неправильно.
Если кодировка не отображается
Если вы зашли на чужой сайт с абракадаброй, а вам все равно очень интересно почитать контент, то в Справке Google объясняют, как исправить кодирование текста через браузер.
О проблеме возникновения абракадабры на вашем сайте будут сигнализировать метрики поведения: вырастут отказы, уменьшится глубина просмотров. Но скорее всего вы и раньше заметите, что что-то пошло не так.
Главное правило — для всех файлов, скриптов, баз данных сайта и сервера должна быть указана одна кодировка. Ошибка может возникнуть, если вы случайно указали на сайте разные виды кодировки.
Яндекс советует использовать одинаковую кодировку для страниц и кириллических адресов структуры. К примеру, если робот встретит ссылку href=»/корзина» на странице с кодировкой UTF-8, он сохранит ее в этом же UTF-8, так что страница должна быть доступна по адресу «/%D0%BA%D0%BE%D1%80%D0%B7%D0%B8%D0%BD%D0%B0».
Где указать кодировку сайта
Если проблема возникла на вашем сайте, способ исправления зависит от вида сайта. Для одностраничника достаточно указать кодировку в мета-теге страницы, а для большого сайта есть разные варианты:
- кодировка в мета-теге;
- кодировка в .htaccess;
- кодировка документа;
- кодировка в базе данных MySQL.
Кодировка в мета-теге
Добавьте указание кодировки в head файла шаблона сайта.
При создании документа HTML укажите тег meta в начале в блоке head. Некоторые браузеры могут не распознать указание кодировки, если оно будет ниже.
Мета-тег может выглядеть так:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
или так:
<meta charset="utf-8">
В HTML5 они эквивалентны.
В темах WordPress обычно тег «charset» с кодировкой указан по умолчанию, но лучше проверить.
Кодировка в файле httpd.conf
Инструкции для сервера находятся в файле httpd.conf, обычно его можно найти на пути «/usr/local/apache/conf/».
Если вам нужно сменить кодировку Windows-1251 на UTF-8, замените строчку «AddDefaultCharset windows-1251» на «AddDefaultCharset utf-8».
Осторожнее: если вы измените в файле кодировку по умолчанию, то она изменится для всех проектов на этом сервере.
Убедитесь, что сервер не передает HTTP-заголовки с конфликтующими кодировками.
Кодировка в .htaccess
Добавьте кодировку в файл .htaccess:
- Откройте панель управления хостингом.
- Перейдите в корневую папку сайта.
- В файле .htaccess добавьте в самое начало код:
- для указания кодировки UTF-8 — AddDefaultCharset UTF-8;
- для указания кодировки Windows-1251 — AddDefaultCharset WINDOWS-1251.
- Перейдите на сайт и очистите кэш браузера.
Кодировка документа
Готовые файлы HTML важно сохранять в нужной кодировке сайта. Узнать текущую кодировку файла можно через Notepad++: откройте файл и зайдите в «Encoding». Меняется она там же: чтобы сменить кодировку на UTF-8, выберите «Convert to UTF-8 without BOOM». Нужно выбрать «без BOOM», чтобы не было пустых символов.
Кодировка Базы данных
Выбирайте нужную кодировку сразу при создании базы данных. Распространенный вариант — «UTF-8 general ci».
Где менять кодировку у БД:
- Кликните по названию нужной базы в утилите управления БД phpMyAdmin и откройте ее.
- Кликните на раздел «Операции»:
- Введите нужную кодировку для базы данных MySQL:
- Перейдите на сайт и очистите кэш.
С новой БД проще, но если вы меняете кодировку у существующей базы, то у созданных таблиц и колонок заданы свои кодировки, которые тоже нужно поменять.
Для всех таблиц, колонок, файлов, сервера и вообще всего, что связано с сайтом, должна быть одна кодировка.
Проблема может не решиться, если все дело в кодировке подключения к базе данных. Что делать:
- Подключитесь к серверу с правами mysql root пользователя:
mysql -u root -p - Выберите нужную базу:
USE имя_базы; - Выполните запрос:
SET NAMES ‘utf8’;
Если вы хотите указать Windows-1251, то пишите не «utf-8», а «cp1251» — обозначение для кодировки Windows-1251 у MySQL.
Чтобы установить UTF-8 по умолчанию, откройте на сервере my.cnf и добавьте следующее:
В области [client]:
default-character-set=utf8
В области [mysql]:
default-character-set=utf8
В области [mysqld]:
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
Вы когда-нибудь сталкивались с проблемами кодировки на сайте?
Чем отличается и когда и где лучше применять один или другой:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Mirdin
5,7911 золотой знак20 серебряных знаков29 бронзовых знаков
задан 28 окт 2011 в 17:11
5
Разница в том, что на UTF-8 — два байта, а на windows-1251 — один байт. Поэтому текст в Юникоде больше места занимает. А вообще при прочих равных лучше всегда использовать UTF-8 это сильно облегчает разработку под разные языки.
ответ дан 28 окт 2011 в 18:24
stanislavstanislav
34.1k25 золотых знаков95 серебряных знаков212 бронзовых знаков
6
Здравствуйте, уважаемые читатели моего блога. Сегодня мы поговорим с вами про кодировку. Если вы читали мою статью о том, как посмотреть код страницы в браузере, то знаете, что любой документ в интернете хранится не в том виде, в каком мы привыкли его видеть. Он записан при помощи непонятных человеку символов и знаков. С текстом все точно также.
Существует несколько кодировок, а потому, иногда увидев непонятные символы при открытии книги в мобильном приложении или запилив статью на сайт, вы, поменяв кое-какие значения в настройках, увидите привычный глазу алфавит.
Кодировка windows-1251 – что это такое, какое значение она имеет при создании сайта, какие символы будут доступны и является ли она лучшим решением на сегодняшний день? Обо всем этом в сегодняшней статье. Как всегда, простым языком, максимально понятно и с минимальным количеством терминов.
Немного теории
Любой документ на компьютере или в интернете, как я уже сказал, хранится в виде двоичного кода. К примеру, если вы используете кодировку ASCII, то буква «К» будет записана как 10001010, а windows 1251 под этим числом скрывается символ – Љ. В итоге, если браузер или программа обратится к другой таблице и считает вместо ASCII коды windows 1251, то читатель увидит совершенно непонятные ему символ.
Логичен вопрос, нафига было придумывать множество таблиц с кодами? Дело в том, что помимо русского алфавита существует еще и английский, немецкий, китайский. По некоторым подсчетам, существует около 200 000 символов. Хотя, я не очень доверяю этой статистике, вспоминая про японский.
Не забывайте, что для заглавной и строчной буквы нужно придумать свой код, есть запятые, тире и так далее.
Чем больше в таблице символов, тем длиннее код каждого из них, а значит и вес документа становится больше.
Представьте, если бы одна книга весила 4 Гб! Она бы очень долго загружалась, занимала все свободное место на компьютере. Решение о скачивании представлялось бы делом нелегким.
Если вспомнить о сайтах, то вообще страшно подумать, что бы произошло. Каждая страничка открывалась даже на скоростном оптоволокне по часу с лишним! Думаю, мобильные телефоны можно было бы смело выкидывать. Пользоваться ими на улице даже с 4G? Сомневаюсь.
По этим причинам каждый программист в свое время старался придумать свою таблицу символов. Чтобы было удобно для использования и вес сохранялся оптимальным.
Microsoft, к примеру, для русскоязычного сегмента создали windows-1251. В ней, конечно же, есть свои достоинства и недостатки. Как и у любого другого продукта.
Сейчас уже, лишь 2% всех страниц в интернете написано на 1251. Большинство веб-мастеров используют UTF-8. Почему так?
Недостатки и достоинства
UTF-8, в отличие от windows-1251 универсальная кодировка, в ней содержатся буквы различных алфавитов. Существует даже UTF-128, где есть вообще все языки – теулу, суахили, лаосский, мальтийский и так далее.
UTF-8 победнее, буквы занимают в разы меньше места и занимают всего один байт памяти, как и в 1251. В УТФ есть редкие символы из других языков или специальные символы. Они-то и весят по 5-6 байтов, но в документе используются крайне редко.
Эта кодировка более продумана, а потому ее использует большинство приложений по умолчанию. То есть, если вы не указываете программе, какую кодировку вы используете, то первым делом он проверит именно UTF-8 .
Когда вы создаете html документ для сайта, то указываете браузерам на какую таблицу им обращать внимание при расшифровке записей.
Для этого необходимо вставить в тег head следующие данные. После символов «charset=» идет либо утф, либо виндовс, как в примере ниже.
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
Если в дальнейшем вы захотите что-то поменять и вставить фразу на албанском, используя эту таблицу расшифровок, то ничего не получится, ведь этого языка кодировка не поддерживает. UTF‑8 без проблем позволит вам это сделать.
Если вас заинтересовало правильное создание сайта, то я могу порекомендовать вам курс Михаила Русакова «Создание и Раскрутка сайта от А до Я».
Он содержит в себе очень много – 256 уроков, затрагивающих HTML, CSS, JavaScript, PHP, MySQL и XML. Помимо языков программирования вы сможете понять как монетизировать сайт, то есть скорее и больше получать прибыль. Один из немногих курсов, в котором было бы так подробно разъяснено все, что нужно.
Сам я вот уже год обучаюсь в школе блоггеров Александра Борисова. Это занимает в разы больше времени, конца и края пока не видно, но зато не менее исчерпывающе и дисциплинирует. Мотивирует продолжать разработку.
Ну а если возникают вопросы, не нужно искать по интернету. Всегда есть грамотный наставник.
Что-то я отошел от темы. Давайте вернемся к кодировкам.
Базы банных
Когда речь идет о php, все вообще страшно. Я уже рассказывал про базы данных, они используются для ускорения работы сайта. Обычно, вы к ним не обращаетесь, но когда появляется необходимость в переносе сайта становится не по себе.
Сложности случаются у всех, не важно какой у вас опыт работы, стаж и выслуга лет. Некоторые странички в базе могут содержать в себе все доступные символы для виндовс-1251, другие, к примеру, в шаблонах страниц, в другой кодировке.
Пока не нужен перенос все работает и функционирует, хоть и не совсем правильно. Но после переезда начинаются неприятности. В идеале вы должны использовать либо только УТФ, либо виндовс-1251, но по факту всегда и у всех случаются вот такие недочеты.
Чтобы расшифровка согласовалась необходимо вписать код mysql_query(«SET NAMES cp1251»). В этом случае преобразование будет осуществлять по другому протоколу – cp1251.
Htaccess
Если на сайте вы настойчиво решили использовать именно 1251, то вам следует найти или создать файл htaccess. Он отвечает за настройки конфигурации. В него придется добавить еще три строчки, чтобы все сошлось.
DefaultLanguage ru; AddDefaultCharset windows-1251; php_value default_charset "cp1251"
Я все же настоятельно рекомендую вам задумать о использовании UTF-8. Он более популярен, прост и богат. Какие бы решения вы не приняли сейчас, важно, чтобы впоследствии можно было все исправить. Добавить англоязычную версию сайта на этой кодировке будет в разы проще. Ничего не нужно исправлять.
Решение остается за вами. Подписывайтесь на рассылку, чтобы узнавать как можно быстрее создавать правильные сайты, где учиться, чтобы не повторять чужих ошибок, а также какие блоггеры получают больше посетителей.
До новых встреч и удачи в ваших начинаниях.
На днях пришлось решать небольшую проблему с плохой восприимчивостью комплекта Denwer к кодировки UTF-8. Проблема, честно говоря, оказалась пустяковая, и была решена минут за 15, 10 из которых заняло использование Гугла. В этом время, исследуя различные форумы, я заметил, что для многие не могут разобраться с этой проблемой достаточно долго. Кроме того, понял, что многих интересует зачем вообще использовать UTF-8, если есть прекрасная такая “русская” кодировка Windows-1251. Вот и решил написать пару постов на эту тему. Начну я с общего описания данных кодировок, а продолжу, непосредственно, описанием решения проблемы использования UTF-8 на пакете Denwer.
Не так давно, в связи со сложившимися обстоятельствами, решил отказаться от кодировки Windows-1251, с которой работал очень давно, и целиком и полностью перейти на UTF-8. Все причины перехода раскрывать не буду, но основные из них:
- большинство современных веб-платформ по-умолчанию работают именно на ней;
- её очень удобно использовать для создания мультиязычных проектов;
- набор используемых в кодировки символов около 100000;
- кодировка универсальная, т.е. русские символы и в Никарагуа остаются русскими.
Далее постараюсь написать несколько слов об основных отличиях кодировок Windows-1251 и UTF-8, а так же, в качестве бонуса, примеры объявления кодировки в HTML, PHP и для работы с базами данных MySQL.
Немного теории
Windows-1251 – набор символов и кодировка, являющаяся стандартной 8-битной кодировкой для всех русских версий Microsoft Windows. Пользуется довольно большой популярностью. Windows-1251 выгодно отличается от других 8‑битных кириллических кодировок (таких как CP866, KOI8-R и ISO 8859-5) наличием практически всех символов, использующихся в русской типографике для обычного текста; она также содержит все символы для близких к русскому языку языков: украинского, белорусского, сербского и болгарского.
UTF-8 – в настоящее время распространённая кодировка, реализующая представление Юникода, совместимое с 8-битным кодированием текста. Нашла широкое применение в операционных системах и веб-пространстве. Текст, состоящий только из символов Юникода с номерами меньше 128, при записи в UTF-8 превращается в обычный текст ASCII. Остальные символы Юникода изображаются последовательностями длиной от 2 до 6 байт.
Основные отличия кодировок
Главное отличие кодировок – это используемый набор символов. В UTF-8 гораздо больше количество символов возможно представить, чем в Windows- 1251. Кодировка Windows- 1251 однобайтовая, т.е. представить в ней можно только 255 символов. Для кириллицы, впрочем, этого вполне достаточно, именно поэтому однобайтовые кодировки до сих пор так массово применяются.
Символ в кодировке UTF-8 может кодироваться аж 6 байтами (пока используется только 4 и больше не планируется). Для русского языка, например, символ занимает 2 байта. Все символы, которые есть в таблице символов – поддерживаются этой кодировкой. К примеру, если вам нужен знак копирайта (©), то вам не нужно искать особый шрифт или же изображать символов в графическом формате.
Плюсы UTF-8:
- UTF-8 позволяет работать одновременно с несколькими языками, т.е. выдавать тексты, в которых используются символы разных алфавитов и даже иероглифы. С использованием кодировки 1251 это невозможно;
- использование UTF-8 позволяет отказаться от кодовых таблиц, трансляций символов и всех прочих извращений, что были ранее с однобайтовыми кодировками;
- Нет кучи кодировок для одного и того же языка, как это было ранее для русского: cp1251, cp866, koi8r, iso8859-5.
Минусы UTF-8… А есть ли они у этой кодировки вообще? Я знаю только разных мифах и легендах на эту тему, вот некоторые из них:
- “У UTF-8 есть проблемы со старыми браузерами” – маловероятно… Во всяком случае, если под старыми не подразумевают Lynx и Mosaic _);
- “С UTF-8 возникают проблемы на сервере” – ну да, если сервер по-умолчанию пытается определить другую кодировку. Но это не минус кодировки, уж точно…
В следующем посте попробую кратко описать решение проблемы просмотра сайтов, использующих кодировку UTF-8, на пакете Denwer.
А какую кодировку используете вы? Часто сталкиваетесь с проблемами на эту тему?
В начале 90-х, когда произошел развал СССР и границы России были открыты, к нам стали поступать программные продукты западного производства. Естественно, все они были англоязычными. В это же время начинает развиваться Интернет. Остро встала проблема русификации ресурсов и программ. Тогда и была придумана русская кодировка Windows 1251. Она позволяет корректно отображать буквы славянских алфавитов:
- русского;
- украинского;
- белорусского;
- сербского;
- болгарского;
- македонского.
Разработка велась русским представительством Microsoft совместно с и «Параграф». За основу были взяты самописные разработки, которые в 1990-91гг имели хождение среди немногочисленных идеологов ИТ в России.
На сегодняшний день разработан более универсальный способ кодировать символы — UTF-8 (Юникод). В нем представлено почти 90% всех программных и веб-ресурсов. Windows 1251 применяется в 1,6% случаев. (Информация по исследованиям Web Technology Surveys)
UTF-8 — это много-байтовая кодировка, а Windows- 1251 однобайтовая. И более того, отличие только в кириллице.
Количество байтов кириллицы в UTF-8 будет в 2 раза больше, чем 1). латиницы в UTF-8 и 2). латиницы + кириллицы в Windows- 1251 → пример
Главное отличие кодировок – это используемый набор символов. В UTF-8 гораздо больше количество символов возможно представить, чем в Windows- 1251. Кодировка Windows- 1251 однобайтовая, т.е. представить в ней можно только 255 символов. Для кириллицы, впрочем, этого вполне достаточно, именно поэтому однобайтовые кодировки до сих пор так массово применяются.
Оглавление
- Интернет: две
основные кодировки кириллицы для пользователя MS Windows - Микрософтовские
шрифты с кириллицей,
включённые
в поставку MS Windows - Бесплатные не-Микрософтовские
, старые (сделанные для Windows 3.1) кириллические шрифты - Программы-перекодировщики: из одной кодировки в другую
- 235
в кодировке Windows-1251 (используется в странах бывшего СССР для русских, украинских, белорусских и т.п. текстов, а также в Болгарии и странах бывшей Югославии) - 204
в кодировке KOI8-R (используется для русских текстов) - 171
в кодировке DOS-866 (используется в сети Fido7 и на компьютерах с OS/2) - …
- английская ‘r’ — код 114
- цифра 5 — код 53
- двоеточие — 58
- …
- Windows-1251
В меню выбора кодировки в браузерах это выглядит обычно как «Cyrillic(Windows)» или «Cyrillic(Windows-1251)» - KOI8-R
В меню выбора кодировки в браузерах это выглядит обычно как «Cyrillic(KOI8-R)» - OS/2 и DOS (что включает сеть FIDO7) — «CP-866»
- UNIX — «ISO-8859-5» (в России — чаще KOI8-R)
- Apple Macintosh — «Mac Cyrillic»
- некоторые русские Web-страницы
— в кодировке KOI8-R. То есть, браузер должен уметь показывать KOI8-R текст. Кроме того, такие страницы иногда содержат
формы
ввода текста, то есть, там предполагается вводKOI8-R текста в дополнение к выводу KOI8-R на экран. - e-mail
. Часто нужно и отсылать и получать KOI8-R письма по электронной почте - Русскоязычные новостные конференции — Usenet Newsgroups
(Discussion Groups) — часто используют KOI8-R, то есть, KOI8-R используется и при отсылке и при высвечивании сообщений. - Internet Explorer
- Outlook Express
- MS Outlook вер. 2000 и выше
- Netscape вер. 4 и выше и его Почтовый (Mail) и Новостной (News) компоненты
- Мозилла и её Почтовый (Mail) и Новостной (News) компоненты
- чтение
KOI8-R текстов Эти программы сначала конвертируют KOI8-R текст в Windows-1251 текст, а уж потом показывают Вам полученный Windows-1251текст — используя ‘родные’ для Windows шрифты кодировки Windows-1251 типа «Arial» или «Courier New».Это делается, например, в следующих случаях:
когда надо показать KOI8-R
Web-страницу - когда надо показать пришедшее письмо (e-mail
), если оно путешествовало в Интернете в виде текста сетевой, транспортной кодировки KOI8-R - когда надо показать статью в новостной конференции (Newsgroup
, (Discussion Group)) (напомню, что большинство русских Newsgroups используют KOI8-R как ‘общую для всех платформ’ кодировку, то есть это KOI8-R тексты) - Когда нужно писать
в KOI8-R, то есть, создавать KOI8-R текст. Эти программы сначала дают Вам вводить текст, использую ‘родные’ для MS Windows шрифты и клавиатурные средства кодировки Windows-1251 — точно так же, как Вы, скажем, в MS Word вводите текст. Потом, когда ввод окончен, эти программы незаметно для Вас конвертируют введённый текст в KOI8-R текст!Например:
- Вы готовите письмо (e-mail
) или сообщение в новостную конференцию (Newsgroup) и хотите, чтобы
в Интернет Ваш текст ушёл
в кодировке KOI8-R, как большинство делает.Современные программы дают Вам ввести текст, используя обычные (не KOI8-R), шрифты и клавиатурные средства для русского, а потом перекодируют введённый текст в KOI8-Rперед тем
, как послать Ваше сообщение в Интернет — чтобы оно путешествовало в Интернете в виде текста сетевой, транспортной кодировки KOI8-R.
Естественно, чтобы программа так
работала,
Вы
должны ей указать, что хотите именно в KOI8-R отправить, т.е. в меню надо выбрать эту кодировку. - Ввод текста в форму
на KOI8-R Web-странице. То же самое — Вы вводите текст, используя обычные шрифты и клавиатурные средства для русского MS Windows, и только когда нажмёте кнопку для отсылки введённого, вот тогда браузер, зная, что страница — в кодировке KOI8-R, перекодирует введённый текст в KOI8-R и только потом текст уйдёт из браузера.
Интернет: 2 основные кодировки кириллицы для пользователя MS Windows
Итак, Вы работаете под MS Windows и хотите работать с русскими сайтами в Интернете или же просто читать/писать по-русски в редакторе.
Авторы кириллических сайтов Интернета используют разные
методы представления алфавита, используют разные
кодировки
кириллицы.
Кодировка определяет числовой код
, присваиваемый каждому элементу набора символов. Скажем, букве
‘л’
присвоены разные коды в различных кодировках кириллицы, например:
- 219
в кодировке ISO-8859-5 (используется для русского на некоторых UNIX-машинах, а также, например, в странах бывшей Югославии)
Кодировка тесно связана со шрифтами — шрифт обычно делается под конкретную кодировку, то есть, например в шрифте кодировки KOI8-R позиция 204
отведена под
‘л’
. В шрифте кодировки Windows-1251 буква
‘л’
находится совсем на другой позиции (
235
), а
204
отведена под букву
‘М’
. Поэтому текст, набранный в кодировке KOI8-R будет нечитабельным, если для его просмотра в редакторе использовать шрифт кодировки Windows-1251 — вместо
‘л’
будет высвечиваться
‘М’
и т.д.
То есть, кодировки кириллицы несовместимы между собой (так исторически сложилось).
А вот у букв английского алфавита — противоположная ситуация: английские буквы, а также цифры, знаки препинания, кавычки и т.п. — так называемый набор ASCII — присутствуют в каждой
из ‘старых’ кодировок мира (новая кодировка Unicode немного по-другому устроена) — кириллических, японских, китайских, … и в каждой из этих кодировок им присвоено одно и то же значение, то есть в
любой
такой кодировке (а, значит, и в любом шрифте):
Поэтому английское слово ‘dog’ будет нормально читаться, какой бы шрифт не был выбран в редакторе — хоть японский, хоть русский.
Это был маленький кусок ‘теории’, а теперь — к практике.
Русскоговорящий пользователь MS Windows
обычно сталкивается в Интернете с
двумя
кодировками кириллицы:
Примечание. В не
-Интернетовских приложениях MS Windows — таких как, например, текстовые редакторы или программы MS Office, используется в настоящее время только
одна
кодировка кириллицы -Windows-1251. Фирма Микрософт выбрала именно эту кодировку для платформы MS Windows, и поэтому когда Вы видите
‘Cyrillic’
в меню выбора скрипта для шрифта или
‘Russian’
в меню выбора клавиатурной раскладки, то на самом деле там подразумевается ‘кодировка Windows-1251’, то есть надо понимать как «Cyrillic, Windows-1251» и «Russian, Windows-1251» соответственно.
Все Микрософтовские шрифты, содержащие кириллицу («Arial», «Times New Roman», …) поддерживают именно кодировку Windows-1251, и клавиатурные раскладки Микрософт обеспечивает только для кодировки Windows-1251.
Современные Интернетовские приложения — браузеры, почтовые и новостные программы, такие, как MS Internet Explorer, Outlook Express, MS Outlook 2000, Netscape вер. 4 и выше, Mozilla, и др.. —не
требуют наличия KOI8-R
шрифтов
, они и без этого умеют обрабатывать KOI8-R тексты (Web-страницы, e-mail, …). Как? Пояснения будут даны ниже, в следующем разделе, посвящённом KOI8-R.
Старые системы (например, Windows 3.1/3.11) и старые программы (например, Netscape 3
) требовали от пользователя установки KOI8-R шрифтов. Некоторые программы и сейчас требуют KOI8-R шрифты для работы с KOI8-R текстом, но таких программ мало, и они не относятся к разряду часто используемых. Это некоторые терминальные программы и т.п.У меня на данной странице предлагается сгрузить KOI8-R шрифты для таких старых систем и/или старых или специфических программ, но я поместил эту информацию в самый конец страницы, так как она редко
кому нужна. Это раздел данной страницы, который называется «Бесплатные
не-Микрософтовские
, старые (от Windows 3.1) кириллические шрифты»
Зачем пользователю Windows знать про кодировку KOI8-R? Почему такому пользователю не нужны KOI8-Rшрифты?
Кодировка KOI8-R, так же, как и другие кириллические кодировки, используется для представления русских текстов, например, на Интернетовской странице, но её основное предназначение — быть сетевой, транспортной
кодировкой, каковой она и является де-факто с самых ранних дней Интернета. Ведь разные компьютеры используют разные
локальные
(т.е. только для данной платформы) кодировки для русского:
- MS Windows — «Windows-1251»
К сожалению, все эти кодировки несовместимы
между собой, по-разному кодируют русские буквы. Так исторически сложилось, тут уж ничего не поделаешь. То есть, пользователь Макинтоша
не
сможет вот так просто прочесть русский в файле, если текст там — в кодировке «Windows-1251», нужно использовать спец. средства, конвертеры, и т.п. То же самое — для пользователя Windows, если ему дать текст в кодировке «Mac Cyrillic».
Как же тогда всем этим разным
(в плане кодировок) компьютерам обмениваться русскими сообщениями через Интернет? Используется общая для всех,
транспортная, сетевая
кодировка KOI8-R, которую понимают все компьютеры. То есть, большинство Интернетовских программ с самого начала поддержки русского ‘знали’, что приходящие и уходящие сообщения — в KOI8-R, и скажем, почтовой программе под Макинтошем не надо было уметь обрабатывать все многочисленные русские кодировки, достаточно было своей локальной и KOI8-R в качестве ‘транспортной’.
Если все эти разные компьютеры стали бы слать в Интернет русские сообщения в локальной
кодировке (из-под Windows — в Windows-1251, из-под Mac — в «Mac Cyrillic», и т.д.), то ситуация была бы непростая
Самый простой пример — новостные конференции, Newsgroups. В дискуссии в такой конференции могут участвовать пользователи различных систем — Mac, Windows, Unix. Тогда просто напрашивается правило использования некой общей для всех кодировки сообщений, чтобы на любой платформе читалось. Исторически такой кодировкой стала KOI8-R. А представьте теперь, что так не произошло, и в некой конкретной дискуссии в русской конференции, где тема дискуссии тоже русская, люди бы стали отвечать каждый в кодировке своей платформы: одно сообщение — от пользователя Unix, ответ — от пользователя Макинтоша, ответ ему — от пользователя OS/2 или Windows. Ничего прочесть было бы нельзя…
Поэтому в большинстве русских новостных конференций все посылают сообщения в KOI8-R, на какой бы платформе ни работали. Естественно, если это узко-специальная конференция, где пользователи — только с одной платформы, например, Windows, то тогда они могут договориться и посылать в кодировке «Windows-1251″… Но, кстати, даже в конференциях иерархии microsoft.public.ru.russian.*
(microsoft.public.ru.russian.windowsxp и др.) всё-таки все пользуются KOI8-R
То же самое для e-mail — большинство писем ‘путешествует’ по сети в виде KOI8-R текстов, и опять же, если группа друзей (все — под Windows) решила для себя, что будут посылать e-mail в кодировке Windows-1251, то это понятно и нормально.
То есть, KOI8-R
это де-факто стандарт для обмена русскими сообщениями в Интернете, это
сетевая, транспортная
кодировка для русского, в то время как на каждом типе компьютеров используется
локальная
кодировка для русского. Одна из таких
локальных
кодировок — «Windows-1251», это то, что используется для русского под
MS Windows
.
Кодировка KOI8-R и Интернетовские программы под MS Windows
Пользователь MS Windows должен иметь возможность работать с текстами в кодировке KOI8-R, а не только с текстами в ‘родной’ для Windows кодировки Windows-1251:
Если у Вас старая
программа типа Netscape
3
, то для работы с KOI8-R в указанных выше ситуациях, Вам придётся установить KOI8-R
шрифты
(они предлагаются ниже на данной странице) и, если надо не только читать, но и писать, то придётся установить
клавиатурные
средства для KOI8-R (они предлагаются в разделе Клавиатура моего сайта).
Но в настоящее время при современных
программах, этого
не
требуется! То есть,
не
нужно ни KOI8-R шрифтов, ни KOI8-R клавиатуры. Более того, современные программы просто не могут работать с KOI8-R шрифтами. Подробности — ниже.
Современные Интернетовские программы (браузеры, почтовые и новостные), такие как
позволяют Вам работать только с ‘родными’, локальными для MS Windows шрифтами и клавиатурными средствами — кодировки Windows-1251 («Cyrillic(Windows)»), даже если надо читать KOI8-R тексты и/или писать в KOI8-R.
Современные программы позволяют, например, чтобы письмо ушло в Интернет
в сетевой, транспортной кодировке KOI8-R, а вот
создавали
Вы его с помощью Windows-1251 шрифтов и обычной Windows-1251 клавиатуры.
Как эти современные программы это делают? Они, незаметно для пользователя, перекодируют
тексты между KOI8-R и Windows-1251:
Все упомянутые выше программы должны быть настроены на русский
, чтобы так работать. Настройка на русский для Internet Explorer, Outlook Express, MS Outlook вер. 2000 и выше, и для Netscape/Mozilla с их почтовыми (Mail) и новостными (News) компонентами описана в разделе
«Русский в браузерах, Почтовых, Новостных программах»
моего сайта. Но его следует читать только
после
того, как Вы закончите чтение данной страницы о русских шрифтах и кодировках.
Другие программы, не
упомянутые выше (другие e-mail программы; графические программы, музыкальные, и т.п.) требуют своей собственной, уникальной настройки на русский. Я лично пробовал и знаю только программы, упомянутые в предыдущих параграфах, так что если Вам надо настроить на русский WinAmp, Eudora или что ещё — смотрите
ссылки на сайты других авторов
в разделе
«Ещё о русификации. Вопросы и Ответы, ссылки
«
моего сайта.
Web и два типа шрифтов
В общем, не углубляясь в детали, в Интернете используются 2
метода показа
текста
на экране:
- Гипертекстовые
страницы — обычные страницы, HTML и т.п. Например, страница поискового сервиса Yandex -https://www.yandex.ru/
index.html
. - Простой Текст
— например, экран, показывающий
каталог
на FTP-сайте антивирусной программы McAfee -ftp://ftp.nai.com/pub/datfiles/english/ или экран, показывающий
содержимое
некоего
простого текстового
файла в таком каталоге, например, файла readme.
txt
: ftp://ftp.nai.com/pub/datfiles/english/readme.
txt
Каждый из этих 2-х типов экранов использует свой собственный стиль шрифта в браузере:
- Пропорциональные
шрифты (
Proportional
width fonts) — для
Гипертекстовых
страниц ( с пропорциональной шириной букв — ‘ж’ шире, чем ‘т’ ) (Netscape
4
использует другое название —
Variable
width fonts)Пример — «Arial» или «Times New Roman»
- Равноширокие
шрифты (
Fixed
width fonts,
Monospace
fonts) — для высвечивания
Простого Текста
( все буквы — фиксированной ширины )Пример — «Courier New»
К Оглавлению
Микрософтовские Windows-1251 шрифты, включённые в Windows
В следующей главке предлагаются для загрузки старые (сделанные для Windows 3.1)не-Микрософтовские кириллические шрифты — и для кодировки KOI8-R, и для кодировки Windows-1251.
Но, как писалось выше, Микрософт использует для кириллицы в своих продуктах как раз кодировку Windows-1251 («Cyrillic(Windows)»). В терминологии Операционных Систем это Code Page 1251
— «Кодовая Страница 1251», поэтому часто можно видеть фразы типа «шрифты CP-1251», где CP — от
C
ode
P
age.
То есть, когда в диалогах Windows Вы видите «Cyrillic», то это на самом деле означает «Cyrillic, CP-1251
«.
Поэтому в 99% случаев нет никакого смысла загружать из Интернета некие не-Микрософтовские русские шрифты кодировки Windows-1251, т.к. в Windows уже включены такие шрифты, а кроме того, качество Микрософтовских шрифтов обычно намного лучше. Более того, большинство современных
приложений просто-напросто не могут работать с такими старыми не-Микрософтовскими шрифтами, а работают с современными юникодовыми шрифтами, включёнными в Windows, такими, как «Arial» и др. (Точно так же в 99% случаев нет смысла загружать из Интернета KOI8-Rшрифты — как было описано выше, современные программы с ними не работают, они обрабатывают KOI8-R тексты без этого.)
Какие же из стандартных шрифтов Windows включают кириллицу? Обычно это многоязычные шрифты «Arial», «Times New Roman», и «Courier New», а часто ещё и «Verdana», «Tahoma», и др.
Кириллица есть в таких стандартных шрифтах Windows даже если сама Windows не русская, а обычная английская (немецкая, …). (для совсем старых версий Windows — 3.1/3.11
— это не так, в то время для английской версии надо было доставать откуда-то русские шрифты типа тех, что предлагаются в следующей главке — они и сделаны были как раз для Windows
3.1
)
Ниже приводится процедура проверки наличия русских Windows-1251 шрифтов в составе Windows 95/98/ME/NT 4.0/2000/XP/2003/Vista и их активации
, если это требуется
1. Русская (локализованная) версия MS Windows
Пользователи такой системы конечно имеют кириллицу в стандартных шрифтах Windows (как и пользователи Пан-Европейской
Windows 95).
Для проверки вызовите редактор Wordpad (Start/Programs/Accessories/Wordpad) и увидите, что стандартные шрифты поддерживают кириллицу
в дополнение к другим скриптам, таким, как «Western», например:
- Пропорциональные шрифты (Proportional fonts) — «Arial (Cyrillic)», «Times New Roman (Cyrillic)»
- Равноширокий шрифт (Fixed font) — «Courier New (Cyrillic)»
2. Windows 95/98/ME
Пользователи английской
(и инсталлированной как английская) или другой нерусской версии Windows
95/98/MEизначально
не имеют кириллицы в стандартных шрифтах. Чтобы активировать поддержку кириллицы в стандартных шрифтах,
требуется
запустить Микрософтовский пакет многоязычной поддержки -«
MS Multilanguage Support
» — что делается обычно через Control Panel. (при этом заодно и
клавиатурные
файлы для русского появляются).
Вот моя короткая инструкция по этому пакету: «Поддержка кириллицы в Windows 95/98/ME — MS Multilanguage Support».
3. Windows NT 4.0/2000/XP/2003/Vista
Пользователи английской
(и инсталлированной как английская) или другой нерусской версии Windows
NT 4.0/2000/XP/2003/Vista
уже имеют кириллицу в стандартных шрифтах!
Это легко проверить, вот пара способов:
- Если есть доступ к Интернету, пойти на русский сайт, например, «Поисковая система Яндекс» и убедиться, что русский текст читается, то есть шрифты типа «Arial» или «Times News Roman» — стандартные Микрософтовские, те, что браузер использует для показа, содержат кириллицу, а иначе бы сайт не читался.
- Вызовите редактор Wordpad (Start/Programs/Accessories/Wordpad) и увидите, что стандартные шрифты поддерживают кириллицу
в дополнение к другим скриптам, таким, как «Western», например: Пропорциональные шрифты (Proportional fonts) — «Arial (Cyrillic)», «Times New Roman (Cyrillic)» - Равноширокий шрифт (Fixed font) — «Courier New (Cyrillic)»
Важное замечание — только для Windows 2000:
Хотя шрифты кодировки Windows-1251изначально
активны под Windows 2000, эта версия Windows, в отличие от Windows NT 4.0 и Windows XP/2003/Vista, требует
дополнительного
шага активации кириллицы. Этот шаг обеспечивает
полную
поддержку кириллицы, например, активирует таблицы перекодировки между разными кириллическими кодировками, копирует файлы клавиатурной раскладки для языков, которые кириллицу используют и т.п. Итак, пользователь Windows 2000
обязан
сделать следующее (что не требуется под Windows NT 4.0 и Windows XP/2003/Vista):
- Start / Settings / Control Panel
- Щёлкнуть на иконку-глобус Regional Options
- В окне Regional Options, в разделе General
, нижняя часть экрана отведена под пользовательские языковые установки —
Language Settings for the System
. - Найдите там строку «Cyrillic» и если слева не стоит ‘галка’, то поставьте её и нажмите кнопку Apply
. Система попросит вставить инсталялционный CD-ROM Windows 2000 и начнёт установку пакета поддержки кириллицы.
Выше было описано, как активировать поддержку кириллицы (кодировки Windows-1251) в стандартных Микрософтовских шрифтах Windows 95/98/ME/NT 4.0/2000/XP/2003/Vista.
Итак, если в Вашей
версии MS Windows теперь:
- кириллица есть в стандартных шрифтах типа «Arial» и
- Вам не
нужны шрифты кодировку
KOI8-R
(то есть, как было описано выше, Вы работаете с
современными
Интернетовскими программами, которые дают работать с KOI8-R текстами,
не
требуя KOI8-R шрифтов и клавиатуры; или же Вы вообще не работаете с русским в Интернете, только в редакторах типа MS Word)
то Вам не
надо дальше читать данную страницу, т.к. ниже — информация для тех, у кого
старые
Интернетовские программы, например, Netscape
3
и/или старая Windows — версии 3.1/3.11: там описано, как пользоваться (например, в Netscape 3 и/или под Windows 3.1)
не
-Микрософтовскими шрифтами типа «ER Bukinist»и/или шрифтами KOI8-R. Ни те, ни другие шрифты просто-напросто не работают в современных программх типа Internet Explorer, Outlook Express, Mozilla, и т.д. поэтому пользователям таких программ и не надо дальше эту страницу читать. (Современные программы работают с современными, юникодовыми шрифтами типа «Arial»).
К Оглавлению
Старые не-Микрософтовские кириллические шрифты
Как загрузить эти шрифты с моего сайта
Ниже Вы найдёте ссылку для загрузки старых не-Микрософтовских шрифтов — несколько Windows-1251
шрифтов и несколько
KOI8-R
шрифтов, которые я в своё время нашёл в Интернете и протестировал на пригодность работы, а также их детальное описание. Но такие шрифты нужны в настоящее время
только
в исключительных случаях:
Важно!
Как объяснялось в конце предыдущей главки, Вам могут потребоваться такие старые (сделанные для Windows 3.1) шрифты
только
в следующих
нестандартных
ситуациях (
большинству
пользователей такие шрифты не нужны):
- Вы работаете с очень старыми версиями Windows -Windows 3.1/3.11
или - Вам нужны шрифты кодировки KOI8-R
. Как было объяснено в начале данной страницы, Вам требуются шрифты KOI8-R
только
если Вы работаете с некой несовременной Интернетовской программой, например, Netscape версии
3
. Редкий случай! Современные программы, как было описано выше,
не
нуждаются в KOI8-R шрифтах при обработке текстов кодировки KOI8-R (и не могут работать с такими шрифтами).
Ниже на данной странице — инструкции только для такой, нестандартной
ситуации, как одна из описанных выше. Поэтому если это не Ваш случай, то данная страница закончена, дальше читать не надо.
Все предлагаемые старые шрифты позволяют Вам читать на Web-странице одновременно и русский, и английский текст.
Вам надо создать каталог(directory,folder
), куда Вы будете загружать из Интернета (
download
) файл со шрифтами, например, каталог
C:RUSFONTS
.
Я собрал все найденные шрифты в один файл(архив) —ForWWW.
zip. Чтобы загрузить этот файл, просто щёлкните мышкой на подчеркнутом имени файла ниже, и Ваш браузер предложит Вам
Сохранить Файл на диске
(
SAVE FILE
диалог). Там Вы должны будете указать на каталог, созданный Вами для хранения русских шрифтов —
C:RUSFONTS
.
ПРИМЕЧАНИЕ :
Если вместо предложения «
Сохранить Файл
» Ваш браузер пытается
показать содержимое
этого файла на экране (редко, но бывает), тогда попробуйте загрузить этот файл снова, но при этом нажмите и держите клавишу
SHIFT
в то время, когда Вы щелкаете мышкой на подчеркнутом имени файла.
Вот она, ссылка для загрузки:
файл ForWWW.zip
После записи этого файла-архива на Ваш компьютер, Вам надо раз-архивировать
, извлечь шрифты, хранящиеся в нём —
extract files
.
Для этого Вы можете использовать программу WinZip for Windows, если она у Вас есть, ИЛИ
простую MS DOS программу
pkunzip
. Если у Вас нет программы
pkunzip
, тогда загрузите ее, щёлкнув мышкой на подчеркнутом имени файла -pkunzip.exe, в каталог
C:WINDOWS
(
C:WinNT
в NT 4.0/2000) на Вашем компьютере.
Чтобы извлечь файлы из архива с помощью программы pkunzip
, выполните следующие 2 команды MS DOS(первая из них — переход в нужный каталог, вторая — собственно открытие архива):
C:……..> cd RUSFONTS C:RUSFONTS> pkunzip forwww.zip Эти команды можно ввести и будучи в MS Windows — надо открыть окно-приложение MS-DOS Prompt
:
- в Windows 3.1, 3.11 это иконка «MS-DOS Prompt» в группе Main
- в Windows 95/98/ME — Start / Programs / MS-DOS Prompt
- в Windows NT 4.0 — Start / Programs / Command Prompt
- в Windows 2000/XP/2003/Vista — Start / Programs / Accessories / Command Prompt
Краткое описание загруженных шрифтов
ПРИМЕЧАНИЕ :
Я собрал в файл ForWWW.zip такие шрифты, которые точно работают в старых версиях Netscape — вер. 2,3 — под всеми вариациями Windows. Если же Вы где-то нашли
другую
версию того же самого шрифта, то он может неверно работать с Netscape 2,3 или с какой-то из версий Windows (например, Windows NT 4.0).
Напоминаю, что при работе со старым
браузером типа Netscape 3 Вам необходимо установить как минимум
4
русских шрифта:
- Proportional и Fixed шрифты для кодировки KOI8-R
- Proportional и Fixed шрифты для кодировки CP-1251(Windows)
(«Windows-1251»)
(как было описано выше на данной странице, современные
браузеры
не
нуждаются в KOI8-R шрифтах, работают
только
с Windows-1251 шрифтами)
а)
Шрифты кодировки
KOI8-R
:
- ‘ER Bukinist KOI-8 Normal’
Proportional(Пропорциональный) шрифт — файл
bkkoi8n.TTF
— датирован 20.12.95 - ‘ROL:KOI8-Courier’
Fixed(Равноширокий) шрифт — файл
rolk8c1.TTF
— датирован 27.02.97.
Примечание.
Под Windows
NT 4.0
— версии
до
Service Pack 3 — шрифт
‘ROL:KOI8-Courier’
работает с ошибкой при показе
списков
, как например, на странице поиска Yahoo!. Поэтому в
этих
версиях
NT
надо использовать другой Fixed KOI8-R шрифт:‘ER Kurier KOI-8 Normal’
Fixed(Равноширокий) шрифт — файл
cokoi8n.TTF
— датирован 15.11.95
б)
Шрифты кодировки
CP-1251(Windows)
:
- ‘ER Bukinist 1251’
Proportional(Пропорциональный) шрифт — файл
bk1251n.TTF
— датирован 05.03.95 - ‘ER Kurier 1251’
Fixed(Равноширокий) шрифт — файл
co1251n.TTF
— датирован 17.09.95
К Оглавлению
Что такое кодировка windows 1251
Windows-1251 – набор символов и кодировка, являющаяся стандартной 8-битной кодировкой для всех русских версий Microsoft Windows. Пользуется довольно большой популярностью. Windows-1251 выгодно отличается от других 8‑битных кириллических кодировок (таких как CP866, KOI8-R и ISO 8859-5) наличием практически всех символов, использующихся в русской типографике для обычного текста; она также содержит все символы для близких к русскому языку языков: украинского, белорусского, сербского и болгарского.
Что такое кодировка UTF-8
UTF-8 – в настоящее время распространённая кодировка, реализующая представление Юникода, совместимое с 8-битным кодированием текста. Нашла широкое применение в операционных системах и веб-пространстве. Текст, состоящий только из символов Юникода с номерами меньше 128, при записи в UTF-8 превращается в обычный текст ASCII. Остальные символы Юникода изображаются последовательностями длиной от 2 до 6 байт.
Символ в кодировке UTF-8 может кодироваться аж 6 байтами (пока используется только 4 и больше не планируется). Для русского языка, например, символ занимает 2 байта. Все символы, которые есть в таблице символов – поддерживаются этой кодировкой. К примеру, если вам нужен знак копирайта (©), то вам не нужно искать особый шрифт или же изображать символов в графическом формате.
Скопировать ссылку
Решения проблемы с кодировкой в CMD. 2 Способ.
Теперь рассмотрим ещё одну ситуацию, когда могут возникнуть проблемы с кодировкой в CMD.
Допустим, ситуация требует сохранить результат выполнения той или иной команды в обычный «TXT» файл. В приделах этого поста возьмём для примера команду «HELP».
Задача
: Сохранить справку CMD в файл «HelpCMD.txt. Для этого создайте Bat файл и запишите в него следующие строки.
После выполнения Bat файла в корне диска «C:» появится файл «HelpCMD.txt» и вместо справки получится вот что:
Естественно, такой вариант не кому не понравится и что бы сохранить справку в понятном для человека виде, допишите в Bat файл строку.
Теперь содержимое кода будет такое.
После выполнения «Батника» результат будет такой: