Как установить кодировку utf 8 в windows

Обновлено: 03.07.2024

Основные понятия

Юнико́д, или Унико́д (англ. Unicode™) — стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков.

Пример: команда wc имеет ключ -c для подсчета байтов и ключ -m для подсчета символов.

Имена файлов

Имена файлов были перекодированы автоматически с помощью утилиты convmv:

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

При необходимости можно выполнить обратное преобразование:

После проверки вывода команды повторить с ключем --notest. Ключ -r включает рекурсивный обход каталогов.

Содержимое файлов

Для потокового перекодирования используется команда:

Редактор Emacs может автоматически распознать кодировку текста при открытии файла. Принудительно задать кодировку открытия или сохранения файла в редакторе Emacs можно следующим образом:

  1. Ввести комбинацию клавиш C-x RET c .
  2. Внизу экрана будет запрошена кодировка, которую вы хотите применить для следующей команды.
  3. Введите команду, которая будет выполнена с применением введенной на предыдущем шаге кодировки, например:
    • комбинацию клавиш для открытия файла: C-x C-f ;
    • комбинацию клавиш для сохранения файла: C-x C-s .

Приложения

Текстовый терминал из Windows

Для корректного отображения русского текста при входе на серверы кафедры с помощью терминального клиента PuTTY нужно указать в настройках:

  • Раздел Window/Translation
    • Character set translation on recieved data: UTF-8

    Текстовый терминал из Linux

    Если системная локаль не UTF-8, то необходимо запустить X-терминал с поддержкой UTF-8 и выполнить вход по ssh из него.

    Если системная локаль UTF-8, то никаких дополнительных действий предпринимать не надо.

    Если по какой-то причине при входе по ssh не установились правильно переменные окружения локали (вывод команды locale не содержит строки LANG=ru_RU.UTF-8 ), то необходимо выполнить команду:

    WinSCP

    Для корректного отображения русских имен файлов:

    • Раздел Environment
      • UTF-8 encoding for filenames: On
      • После выполнения перекодировки содержимого tex-файла (см. Содержимое файлов) необходимо сменить кодировку в преамбуле:
      • Также необходимо подключить пакет ucs:
      • Для установки диакритических знаков (ударений) нужно использовать полную форму стандартной записи \', т.е.:

      Bibtex

      Одна из возможных проблем, с которыми можно столкнуться после установки Windows 10 — кракозябры вместо русских букв в интерфейсе программ, а также в документах. Чаще неправильное отображение кириллицы встречается в изначально англоязычных и не совсем лицензионных версиях системы, но бывают и исключения.

      Исправление отображения кириллицы с помощью настроек языка и региональных стандартов Windows 10

      Кракозябры в программах и документах Windows 10

      1. Откройте панель управления (для этого можно начать набирать «Панель управления» или «Control Panel» в поиске на панели задач.
      2. Убедитесь, что в поле «Просмотр» (View by) установлено «Значки» (Icons) и выберите пункт «Региональные стандарты» (Region).
      3. На вкладке «Дополнительно» (Administrative) в разделе «Язык программ, не поддерживающих Юникод» (Language for non-Unicode programs) нажмите по кнопке «Изменить язык системы» (Change system locale).
      4. Выберите русский язык, нажмите «Ок» и подтвердите перезагрузку компьютера.

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

      Отображение кириллицы исправлено в Windows 10

      С помощью редактора реестра

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

      1. Нажмите клавиши Win+R на клавиатуре, введите regedit и нажмите Enter, откроется редактор реестра.
      2. Перейдите к разделу реестраи в правой части пролистайте значения этого раздела до конца.
      3. Дважды нажмите по параметру ACP, установите значение 1251 (кодовая страница для кириллицы), нажмите Ок и закройте редактор реестра.
      4. Перезагрузите компьютер (именно перезагрузка, а не завершение работы и включение, в Windows 10 это может иметь значение).

      Обычно, это исправляет проблему с отображением русских букв. Вариация способа с помощью редактора реестра (но менее предпочтительная) — посмотреть на текущее значение параметра ACP (обычно — 1252 для изначально англоязычных систем), затем в том же разделе реестра найти параметр с именем 1252 и изменить его значение с c_1252.nls на c_1251.nls.

      Кодовые страницы в реестре Windows 10

      Путем подмена файла кодовой страницы на c_1251.nls

      Второй, не рекомендуемый мной способ, но иногда выбираемый теми, кто считает, что правка реестра — это слишком сложно или опасно: подмена файла кодовой страницы в C:\ Windows\ System32 (предполагается, что у вас установлена западно-европейская кодовая страница — 1252, обычно это так. Посмотреть текущую кодовую страницу можно в параметре ACP в реестре, как было описано в предыдущем способе).

      После перезагрузки Windows 10 кириллица должна будет отображаться не в виде иероглифов, а как обычные русские буквы.

      А вдруг и это будет интересно:

      23.02.2020 в 12:33

      Дмитрий, спасибо за полезную статью!
      Объясните, пожалуйста, зачем вы вставляете пробелы в путях реестра? Это же жутко неудобно, когда хочешь скопировать путь и вставить в окно редактора реестра. К примеру, в статье указана ветка реестра HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\Control\ Nls\ CodePage, чтобы вставить и перейти по этому пути, надо предварительно удалить 3 пробела, иначе редактор реестра не опознает его.

      23.02.2020 в 12:50

      23.02.2020 в 12:56

      Спасибо и с праздником вас!

      23.02.2020 в 12:55

      После изменения языка системы с английской US на русскую крякозябры в текстовых документах исчезли, но проблема частично сохранилась. До изменения языка системы интерфейс и настройки программы USDownloader были полностью в крякозябрах, после изменения стало получше, но проблема полностью еще не решена.
      Подскажите, что еще можно сделать для решения моей проблемы?

      24.02.2020 в 09:59

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

      Нужно правильно раскодировать сигналы, которые наш мозг получает из окружающей среды. Проще говоря, следует правильно « настроить » свой взгляд на жизнь. Ну, вроде не полупустой кошелек, а наполовину полный. То есть, требуется использовать нужную кодировку. Для интернета чаще всего правильной является кодировка utf :


      Немного о кодировках

      Наверное, не является секретом тот факт, что основным типом содержимого во всемирном веб-пространстве является текст. Конечно, сейчас с этим утверждением можно поспорить, но буквально какой-то десяток лет назад это было так.

      Но передача текста в цифровом формате происходит совсем иначе, чем у нас на экране. Для перевода текста в машинный код используется двоичная система исчисления, состоящая лишь из 0 и 1.

      Следующим этапом передачи текста в виртуальном пространстве является его отображение на клиентских машинах с помощью браузера, интерпретирующего html . Вот тут и начинается самое интересное, когда браузер клиента и веб-страница содержат в себе текстовые данные в разных кодировках. Тогда пользователь на своем мониторе видит не текст, а какие-то непонятные ( нечитаемые ) символы:

      Немного о кодировках

      Чаще всего нужно всего лишь поменять кодировку веб-страницы на кодировку utf8. Ведь она является наиболее распространенной во всем интернете.

      Кодировка UTF-8

      Наиболее распространенная среди стандартизированных и общепринятых текстовых кодировок. Расшифровывается как « восьмибитный формат преобразования Юникода » или « Unicode Transformation Format ».

      Стандарт был разработан еще в 1992 году. В настоящее время он широко применяется не только во всемирной паутине, но и на прикладном уровне ( локальные машины и операционные системы ). Основным достоинством кодировки является ее совместимость с ASCII:

      ASCII («American standard code for information interchange») еще одна (но более старая) кодировка представления текстовых данных. В ее таблице символов значения печатных и непечатных знаков заданы с помощью чисел в шестнадцатеричной системе исчисления.

      При использовании UTF-8 для передачи данных в формате ASCII используются 7 первых битов. Последний ( восьмой ) служит для вывода « мусора » ( некорректно раскодированных данных ). Что при использовании кодировки для латинских символов существенно уменьшает объем текстовых данных.

      Как уже говорилось, часто для корректного отображения текста достаточно лишь поменять кодировку документа. Рассмотрим, как это можно сделать в различных дисциплинах, применяемых для построения веб-пространства.

      Как установить кодировку в HTML и PHP

      Для установки utf 8 кодировки в html используется специальный тег <meta>. Он объединяет в себе в форме атрибутов значение метатегов.

      Метатеги используются для передачи и хранения информации, предназначенной для браузеров и поисковиков. Одним из атрибутов тега является charset . Он служит для установки кодировки веб-страницы. Пример использования:

      Как установить кодировку в HTML и PHP

      Также можно установить кодировку некоторым элементам страницы. Например, ссылке. Для этого также используется атрибут charset , значением которого выступает нужная кодировка:

      Многие из страниц ресурсов не являются статическими, а динамически создаются благодаря использованию серверных языков программирования. Чаще всего для построения сайтов применяют PHP . Поэтому важно знать о его средствах, позволяющих «на лету» поменять кодировку генерируемой веб-страницы.

      Для установки и модификации значений заголовка используется функция header() . Ее синтаксис:

      Чтобы корректно задать в php кодировку utf 8 , вызов функции header() в коде должен находиться выше всех тегов html .

      Глобальные настройки кодировки

      Описанные выше методы могут использоваться для отдельных веб-страниц или небольших сайтов. Но что делать, если вы имеете дело с ресурсом, состоящим из нескольких сотен страниц и десятка разделов? Давайте разберемся, как установить кодировку utf 8 для всего сайта.

      Для этого нужно вносить изменения в дополнительный файл конфигурации ресурса. Он носит название .htaccess . Сначала его нужно открыть в любом текстовом редакторе, а затем добавить туда строку:

      В качестве более глобального способа изменения кодировки стоит рассмотреть пример на основе любого локального сервера. Для большей наглядности мы возьмем Denwer , который довольно широко распространен в наших краях.

      Как и в предыдущем примере, в нем нужно заменить значение AddDefaultCharset на нужное. В нашем случае это utf-8 :

      Глобальные настройки кодировки - 2

      Изменение кодировки базы данных

      Изменение кодировки рассмотрим на примере MySQL . Так как это одна из самых востребованных и распространенных СУБД, применяемых в сайтостроении. Все изменения можно произвести в файле my.ini . В Денвере он находится по пути:

      Здесь нужно поменять значение нескольких полей на utf-8 :

      И затем добавить строку skip-character-set-client-handshake :

      Изменение кодировки базы данных

      Подобные изменения можно внести не только для всех баз данных на сервере, но и для отдельно взятой в php базы mysql . Сделать это можно через пользовательский интерфейс оболочки PHPMyAdmin .

      Сначала узнаем, какие кодировки установлены по умолчанию в нашей базе данных. Для этого вводим запрос SQL :

      Вот какой ответ мы должны получить:

      Изменение кодировки базы данных - 2

      Если какие-либо значения нас не удовлетворяют, то нужно их изменить. Воспользуемся для этого запросом к ядру сервера СУБД:

      В результате мы получим новые значения переменных character_set_connection , character_set_results и character_set_client.

      К сожалению, не все так просто обстоит с изменением кодировки в таблицах Excel . Для этого придется воспользоваться сторонней программой для перекодирования файлов. Или обработать данные с помощью громоздких функций.

      Мы рассмотрели все основные способы изменения веб-документов на кодировку utf . Надеемся, что этот материал поможет вам не только выбрать правильную кодировку текста, но и « установить » правильный взгляд на жизнь.


      Разбираем, на что влияет кодировка, нужно ли указывать ее самостоятельно, и почему могут появиться так называемые «кракозябры» на сайте.

      Зачем нужна кодировка

      Кодировка (Charset) — способ отображения кода на экране, соответствие набора символов набору числовых значений. О ней сообщает строка Content-Type и сервер в header запросе.

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

      На сайте слетела кодировка, пример

      Студентка списывала реферат с формулами, а на сайте слетела кодировка. Реальная история

      Google рекомендует всегда указывать сведения о кодировке, чтобы текст точно корректно отображался в браузере пользователя.

      Кодировка влияет на SEO?

      Разберемся, как кодировка на сайте влияет на индексацию в Яндекс и Google.

      «Тип используемой на сайте кодировки не влияет на индексирование сайта. Если ваш сервер не передает в заголовке кодировку, робот Яндекса также определит ее самостоятельно».

      Позиция Google такая же. Поисковики не рассматривают Charset как фактор ранжирования или сигнал для индексирования, тем не менее, она косвенно влияет на трафик и позиции.

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

      Некорректно указана кодировка на сайте

      Пример страницы со слетевшей кодировкой

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

      Виды кодировок

      Существует довольно много видов, но сейчас распространены два:

      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, он покажет ошибку:

      Некорректная кодировка, пример

      Ошибка указания кодировки

      Но валидатор работает не точно: он проверяет только синтаксис разметки, поэтому может не показать ошибку, даже если кодирование указано неправильно.

      Если кодировка не отображается

      Главное правило — для всех файлов, скриптов, баз данных сайта и сервера должна быть указана одна кодировка. Ошибка может возникнуть, если вы случайно указали на сайте разные виды кодировки.

      Яндекс советует использовать одинаковую кодировку для страниц и кириллических адресов структуры. К примеру, если робот встретит ссылку 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. Некоторые браузеры могут не распознать указание кодировки, если оно будет ниже.

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

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

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

      Тег кодировки в HTML

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

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

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

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

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

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

        Кодировка документа

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

        Кодировка Базы данных

        Выбирайте нужную кодировку сразу при создании базы данных. Распространенный вариант — «UTF-8 general ci».

        Где менять кодировку у БД:

        С новой БД проще, но если вы меняете кодировку у существующей базы, то у созданных таблиц и колонок заданы свои кодировки, которые тоже нужно поменять.

        Для всех таблиц, колонок, файлов, сервера и вообще всего, что связано с сайтом, должна быть одна кодировка.

        Проблема может не решиться, если все дело в кодировке подключения к базе данных. Что делать:

        1. Подключитесь к серверу с правами mysql root пользователя:
          mysql -u root -p
        2. Выберите нужную базу:
          USE имя_базы;
        3. Выполните запрос:
          SET NAMES 'utf8’;

        Если вы хотите указать Windows-1251, то пишите не «utf-8», а «cp1251» — обозначение для кодировки Windows-1251 у MySQL.

        Читайте также: