Кодировка страницы: windows-1251, расхождение с сервером, «кракозябры»

Сложность: Указать кодировку — сами за 5 минут, перевод сайта на UTF-8 — разработчик Обновлено 30.10.2026

Что это значит

Кодировка — это правило, по которому байты превращаются в буквы. Браузер узнаёт её из ответа сервера (заголовок Content-Type: text/html; charset=utf-8) и из тега <meta charset="utf-8"> в коде страницы. На сайте кодировка старая (windows-1251, KOI8-R), нигде не указана или сервер и код страницы называют разные кодировки.

  • Сайт в устаревшей кодировке. Страницы записаны в windows-1251 или другой старой кодировке, а не в UTF-8.
  • Кодировка страниц указана противоречиво. Заголовок сервера и <meta charset> называют разные кодировки, или текст на самом деле записан не в той кодировке, которая указана.
  • Не указана кодировка страниц. Ни сервер, ни код страницы не сообщают кодировку: браузер угадывает её сам.

Чем мешает

Если браузер или поисковик выберет не ту кодировку, вместо текста будут «кракозябры» вроде «РџСЂРёРІРµС‚». Старая кодировка сама по себе страницы не ломает, но в ней нет части символов (эмодзи, знак рубля, многие иностранные буквы), а формы, оплата и сервисы рассылок работают в UTF-8, и на стыке текст портится.

Как исправить

WordPress

  1. WordPress работает в UTF-8: проверьте «Настройки → Чтение → Кодировка страниц» (в старых версиях) и что в header.php темы есть <meta charset="<?php bloginfo('charset'); ?>">.
  2. Если сервер отдаёт другую кодировку в заголовке, добавьте в файл .htaccess в корне сайта строку AddDefaultCharset UTF-8 или попросите поддержку хостинга.

Tilda

  1. Tilda всегда отдаёт страницы в UTF-8. Если проверка нашла проблему с кодировкой, она в коде, который вы вставили сами (блоки T123, HTML-вставки): уберите из него свои теги <meta charset>.

1С-Битрикс

  1. Узнать кодировку: «Настройки → Настройки продукта → Сайты → Список сайтов → сайт → Кодировка». Перевод старого сайта с windows-1251 на UTF-8 — работа для разработчика: перекодировка файлов, базы данных и настройка dbconn.php и .settings.php.
  2. Если расходятся заголовок сервера и <meta>, разработчик выставит одинаковую кодировку в настройках сайта и в шаблоне (header.php).

OpenCart

  1. OpenCart работает в UTF-8. Если сервер отдаёт другую кодировку в заголовке, добавьте в .htaccess строку AddDefaultCharset UTF-8 или попросите поддержку хостинга.

Другой движок или свой сервер

  1. Первой строкой внутри <head> укажите <meta charset="utf-8">.
  2. Сервер должен отдавать заголовок Content-Type: text/html; charset=utf-8: в Apache — строка AddDefaultCharset UTF-8 в .htaccess, в Nginx — charset utf-8; в настройках сайта.
  3. Если файлы сайта на самом деле в windows-1251, а переводить их пока не на что, укажите windows-1251 одинаково и в заголовке, и в <meta>.

Пример кода

Замените example.by на адрес своего сайта.

<head>
  <meta charset="utf-8">
  <title>…</title>
# .htaccess (Apache)
AddDefaultCharset UTF-8

# Nginx, внутри server { … }
charset utf-8;

Если сайт в windows-1251 работает без сбоев, перевод на UTF-8 можно отложить: поисковики такие страницы читают.

Если сайт делал подрядчик

Перешлите ему ссылку на отчёт и эту просьбу:

Сделайте, пожалуйста, чтобы сервер и код страниц указывали одну кодировку, лучше UTF-8 (Content-Type и meta charset).

Как проверить, что всё исправлено

Откройте сайт в браузере, нажмите Ctrl+U и найдите в начале кода <meta charset=…>. Заголовок сервера видно в Яндекс.Вебмастере: «Инструменты → Проверка ответа сервера». Проверьте сайт снова на yasnoseo.by.