Как настроить кодировку сайта самостоятельно

Windows-1251

— набор символов и кодировка, являющаяся стандартной 8-битной кодировкой для русских версий Microsoft Windows до 10-й версии. В прошлом пользовалась довольно большой популярностью. Была создана на базе кодировок, использовавшихся в ранних «самопальных» русификаторах Windows в 1990—1991 гг. совместно представителями «Параграфа», «Диалога» и российского отделения Microsoft. Первоначальный вариант кодировки сильно отличался от представленного ниже в таблице (в частности, там было значительное число «белых пятен»).

В современных приложениях отдается предпочтение Юникоду (UTF-8). На 1 февраля 2021 лишь на 1,5 % всех веб-страниц используется Windows-1251.[1]

Что такое кодировка windows 1251

Windows-1251 – набор символов и кодировка, являющаяся стандартной 8-битной кодировкой для всех русских версий Microsoft Windows. Пользуется довольно большой популярностью. Windows-1251 выгодно отличается от других 8‑битных кириллических кодировок (таких как CP866, KOI8-R и ISO 8859-5) наличием практически всех символов, использующихся в русской типографике для обычного текста; она также содержит все символы для близких к русскому языку языков: украинского, белорусского, сербского и болгарского.

LiveInternetLiveInternet

Иногда, вследствие тех или иных причин, у пользователей ОС Windows случается что-то такое, что приводит к сбою кодировок. Какая-та новоустановленная программа, вирус, манипуляции в реестре, мало-ли что… Вот слетели кодировки и все-тут!

На днях у меня тоже случилась подобная вещь. В некоторых русифицированных программах часть надписей интерфейса стала выглядеть так, как будто вместо букв туда вставили отпечатки лап птиц:

Скажу честно — я потратил на поиск решения проблемы почти два дня. На всех форумах и сервисах «вопросов и ответов», во всех мануалах и инструкциях, все как один повторяли тот-же рецепт решения, который возможно кому-то и помог. Но не мне. И только когда мои мозги уже начали закипать и всякая надежда на решения проблемы покинула меня, все стало на свои места.

Результаты же поисков я решил оформить в «Универсальное руководство по решению всех проблем с кодировкой в операционных системах Windows XP и Windows Vista/7». Хотя возможно оно не так уже и универсально… ;)

Решение проблем с кодировкой в Windows XP:

Пункт 1. Сначала нужно убедится, что для программ не поддерживающих Юникод установлен русский язык.

Открываем «Панель управления» и дважды кликаем по иконке «Язык и региональные стандарты». Переходим во вкладку «Дополнительно» и устанавливаем русский язык в качестве «Языка программ, не поддерживающих Юникод».

После этого найдите в списке, который размещен на этой-же вкладке пункт 20880 и поставте возле него галочку:

Сохраните изменения и перезагрузите компьютер. Если проблема не исчезла переходим к пункту 2.

Пункт 2. Возможно, что проблемы с кодировкой вызваны нарушением системных настроек шрифтов.

Для восстановления настроек шрифтов скачайте этот архив и запустите файл который находится в нем игнорируя все предупреждения системы:

Перезапустите систему. Если проблема не исчезла переходим к пункту 3.

Пункт 3. Следующий этап — изменение ключей реестра которые отвечают за кодировки. Делать эти изменения желательно только в крайнем случае и только если все предыдущие пункты ни к чему не привели.

Для выполнения этих изменений скачайте этот архив и запустите файл находящийся в нем. Как и в предыдущем пункте появятся предупреждения системы.

После этих изменений также нужно будет перезапустить систему.

Решение проблем с кодировкой в Windows Vista/7:

1. Как и в случае с Windows XP сначала убедитесь что для программ не поддерживающих Юникод установлен русский язык.

Открываем «Панель управления» и дважды кликаем по иконке «Язык и региональные стандарты». Переходим во вкладку «Дополнительно» и устанавливаем русский язык в качестве «Языка программ, не поддерживающих Юникод»:

Сохраните изменения и перезагрузите компьютер. Если проблема не исчезла переходим к пункту 2.

2. Для восстановления настроек шрифтов скачайте этот архив и запустите файл который находится в нем игнорируя все предупреждения системы:

Перезапустите систему. Если проблема не исчезла переходим к пункту 3.

3. Следующий этап — изменение ключей реестра которые отвечают за кодировки. Делать эти изменения желательно только в крайнем случае и только если все предыдущие пункты ни к чему не привели.

Для выполнения этих изменений скачайте этот архив и запустите файл находящийся в нем. Как и в предыдущем пункте появятся предупреждения системы.

После этих изменений также нужно будет перезапустить систему.

4. Если все вышеуказанное не помогло нужно поменять имена следующих файлов кодовых страниц в папке C:\Windows\System32:

Файл «c_1252.nls» на «c_1252.nls.bak» Файл «c_1253.nls» на «c_1253.nls.bak» Файл «c_1254.nls» на «c_1254.nls.bak» Файл «c_1255.nls» на «c_1255.nls.bak»

Поскольку эти файлы защищены от изменения для выполнения этой операции желательно воспользоваться замечательной программой Unlocker. Скачать программу можно с официального сайта

После ее установки нужно кликнуть правой кнопкой мыши по нужному файлу, и выбрать пункт «Unlocker».

В открывшемся окне выберите в выпадающем списке «Переименовать». Измените имя файла и нажмите кнопку «OK»:

После переименования вышеуказанных файлов скопируйте файл «c_1251.nls» в какую-то другую папку (или скопируйте в буфер обмена), а затем переименуйте его на «c_1252.nls». Вновь вставьте (скопируйте) файл «c_1251.nls» в папку C:\Windows\System32 и переименуйте на «c_1253.nls», а затем повторите это еще два раза с переименованием в «c_1254.nls» и «c_1255.nls».

В результате выполнения этого пункта, файлы «c_1252.nls», «c_1253.nls», «c_1254.nls», «c_1255.nls» будут заменены файлом «c_1251.nls». Не забудьте также вернуть в первоначальную папку файл «c_1251.nls»:

my-soft-blog.net

Интересное о Windows:

Как перенести папку «Мои документы» на другой диск

Как отключить сообщения об ошибках в Windows XP

Оптимизация Windows своими руками

Что такое кодировка UTF-8

UTF-8 – в настоящее время распространённая кодировка, реализующая представление Юникода, совместимое с 8-битным кодированием текста. Нашла широкое применение в операционных системах и веб-пространстве. Текст, состоящий только из символов Юникода с номерами меньше 128, при записи в UTF-8 превращается в обычный текст ASCII. Остальные символы Юникода изображаются последовательностями длиной от 2 до 6 байт.

Символ в кодировке UTF-8 может кодироваться аж 6 байтами (пока используется только 4 и больше не планируется). Для русского языка, например, символ занимает 2 байта. Все символы, которые есть в таблице символов – поддерживаются этой кодировкой. К примеру, если вам нужен знак копирайта (©), то вам не нужно искать особый шрифт или же изображать символов в графическом формате.

Кодировки в Windows

В данной статье пойдёт речь о кодировках в Windows. Все в жизни хоть раз использовали и писали консольные приложения как таковые. Нету разницы для какой причины. Будь-то выбивание процесса или же просто написать «Привет!!! Я не могу сделать кодировку нормальной, поэтому я смотрю эту статью!». Тем, кто ещё не понимает, о чём проблема, то вот Вам:

А тут было написано:

echo Я абракадабра, написанная автором. Но никто ничего не понял.

В любом случае в Windows до 10 кодировка BAT и других языков, не использует кодировку поддерживающую Ваш язык, поэтому все русские символы будут писаться неправильно.

1. Настройка консоли в батнике

Сразу для тех, кто пишет chcp 1251 лучше написать это:
assoc .bat = .mp4 Первый способ устранения проблемы, это Notepad++. Для этого Вам нужно открыть Ваш батник таким способом:
Не бойтесь, у Вас откроется код Вашего батника, а затем Вам нужно будет сделать следующие действия:

Если Вам ничего не помогло, то преобразуйте в UTF-8 без BOM.

2. Написание консольных программ

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

Первый способ непосредственно Notepad++, но а если нужно сначала одну кодировку, а потом другую?

Сразу для использующих chcp 1251 пишите это:

del C:\Program Data echo Mne pofig pause Второй способ это написать десктопную программу, или же использовать Visual Studio. Если же не помогает, то есть первое: изменение кодировки вывода(Пример на C++). #include #include int main() { SetConsoleCP(номер_кодировки); SetConsoleOutputCP(номер_кодировки); } Если же не сработает: #include //Не забываем про библиотеку Math. char bufRus[256]; char* Rus(const char* text) { CharToOem(text, bufRus); return bufRus } int main { cout << «Тут пишите, что угодно!» << endl; system(«pause») return 0 }
3. Изменение chcp 1251
Если же у Вас батник, то напишите в начало: chcp 1251 >nul for /f «delims=» %%A in («Мой текст») do >nul chcp 866& echo.%%A Теперь у Нас будет нормальный вывод в консоль. На других языках (С++): SetConsoleOutputCP(1251) //А тут добавляете тот цикл, который был в батнике
4. Сделать жизнь мёдом
При использовании данного способа Вы не сможете:

  • Разрабатывать приложения на Windows ниже 10
  • Спасти мир от данной проблемы
  • Думать о других людях
  • Разрабатывать десктопные приложения, так как Вам жизнь покажется мёдом
  • Сменить Windows на версию ниже 10
  • Ну и понимать людей, у которых Windows ниже 10

Установить Windows 10. Там кодировка консоли специально подходит для языка страны, и Вам больше не нужно будет беспокоиться об этой проблеме. Но у Вас появится ещё 6 проблем, и вернуться к предыдущей лицензионной версии Windows Вы не сможете.

Где указать кодировку сайта

Если проблема возникла на вашем сайте, способ исправления зависит от вида сайта. Для одностраничника достаточно указать кодировку в мета-теге страницы, а для большого сайта есть разные варианты:

  • кодировка в мета-теге;
  • кодировка в .htaccess;
  • кодировка документа;
  • кодировка в базе данных MySQL.

Кодировка в мета-теге

Добавьте указание кодировки в head файла шаблона сайта.

При создании документа HTML укажите тег meta в начале в блоке head. Некоторые браузеры могут не распознать указание кодировки, если оно будет ниже.

Мета-тег может выглядеть так:

или так:

В HTML5 они эквивалентны.

Где указывать кодировку на сайте

В темах WordPress обычно тег «charset» с кодировкой указан по умолчанию, но лучше проверить.

Кодировка в файле httpd.conf

Инструкции для сервера находятся в файле httpd.conf, обычно его можно найти на пути «/usr/local/apache/conf/».

Если вам нужно сменить кодировку Windows-1251 на UTF-8, замените строчку «AddDefaultCharset windows-1251» на «AddDefaultCharset utf-8».

Осторожнее: если вы измените в файле кодировку по умолчанию, то она изменится для всех проектов на этом сервере.

Убедитесь, что сервер не передает HTTP-заголовки с конфликтующими кодировками.

Кодировка в .htaccess

Добавьте кодировку в файл .htaccess:

  1. Откройте панель управления хостингом.
  2. Перейдите в корневую папку сайта.
  3. В файле .htaccess добавьте в самое начало код: для указания кодировки UTF-8 — AddDefaultCharset UTF-8;
  4. для указания кодировки Windows-1251 — AddDefaultCharset WINDOWS-1251.
  • Перейдите на сайт и очистите кэш браузера.
  • Кодировка документа

    Готовые файлы HTML важно сохранять в нужной кодировке сайта. Узнать текущую кодировку файла можно через Notepad++: откройте файл и зайдите в «Encoding». Меняется она там же: чтобы сменить кодировку на UTF-8, выберите «Convert to UTF-8 without BOOM». Нужно выбрать «без BOOM», чтобы не было пустых символов.

    Рейтинг
    ( 2 оценки, среднее 4.5 из 5 )
    Понравилась статья? Поделиться с друзьями: