Автор: Рубрики: Инструкции Просмотрено: 737
Как избавиться от “кракозябр” на сайте. Изменение кодировки документов
06Авг2019

Кодировка символов указывает компьютеру, как интерпретировать необработанные нули и единицы в реальные символы. Обычно это делается путем сопряжения чисел с символами. В настоящее время существует множество различных типов кодировок символов, но чаще всего используются ASCII, 8битные и Unicodeкодировки.

          Пример закодированного текста: 

0KHQutC40LTQutCwIDEwJSDQv9C+INC60L7QtNGDIFByb21vXzEw

    Проблема с некорректным отображением наполнения сайта, так называемыми “кракозябрами”, в большинстве случаев связана с кодировкой документов. 

     Почему такое случается? Причина такому явлению проста: заданная кодировка элемента не отвечает кодировке заданной браузером, как следствие получается конфликт и мы видим эти странные символы на страницах сайта. Решение вопроса идет от сути причины – это установка единой для браузера и документов кодировки.

       В этой статье мы разберем как избавится от этого явление, рассмотрим как изменять и указывать кодировку.
     1)Проверяем HTML разметку. Обращаем внимание на значение атрибута charset  тега meta, что находится в секции head. Здесь должна содержаться кодировка, на которой написан Ваш документ. Если не указать этот атрибут, браузер будет определять кодировку автоматически, если она определилась неверно, пользователь увидит на сайте набор непонятных символов.

charset

 windows-1251

    2)Кодировка файла. Если мета тег выставлен в нужной кодировке и браузер отображает ту же кодировку, но все равно на странице кракозябры,  нужно проверить в какой кодировке сохранен сам файл. Это можно сделать через текстовый редактор, удобно для этого дела использовать Notepad++. Открываем файл и внизу в правом углу указана кодировке текущего документа. Если Вы видите, что кодировка выставлена неверно, нужно сменить ее, выбираем меню ‘Кодировки’ и преобразуем файл в нужную  кодировку.

     3) файл .htaccess. Если после выполнения первого и второго пункта проблема все равно остается, значить причина кроется в настройках сервера и нужно прописывать кодировку в файле .htaccess. Этот файл находиться в корневой директории Вашего сайта. Если его нет, то нужно просто создать этот файл. Открываем файл и с новой строки прописываем:

  AddDefaultCharset тип кодировки

Например, если Вам нужно указать кодировку  windows-1251, тогда добавляем строку: 

 AddDefaultCharset WINDOWS-1251

Сразу сюда можно добавить кодировку и для  php.

.htaccess

Сохраняем изменения, все готово.

     4)Некорректная кодировка в БД. Кодировка таблиц и их полей также должны иметь единую кодировку с  другими файлами и сервером. Для смены версии кодировки БД удобно использовать команду:

  ALTER DATABASE `namedb` COLLATE cp1251_general_ci;

 где `namedb` – название БД; 

  cp1251_general_ci – кодировка, которую хотите применить.

phpmyadmin

И проверяем наши изменения введя в поле запрос, для отображения всех значений и настроек БД:

  SHOW VARIABLES;

variables

Если нужно сменить кодировку в таблице.Для наглядности, в качестве  примера возьмем смену кодировки utf8_danish_ci на cp1251_general_ci в таблице MARIA.

ecodingfortable

Используем команду:

  ALTER TABLE `nametable` COLLATE cp1251_general_ci;

altertable

Как видим по скрину, что представлен ниже,  кодировка изменилась успешно.

faaha

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

  ALTER TABLE `nametable`  CHANGE `namefield` VAR(4) CHARACTER SET cp1251  COLLATE cp1251_general_ci;

 где `nametable` – название таблицы;

`namefield` – названия поля, в котором будут изменения;

Также эти изменения легко делать непосредственно в phpMyAdmin.

  • выбираем таблицу и открываем ее;

tablefieldencoding

  • кликаем на  поле – ‘Структура’ и выбираем необходимое  поле таблицы , для смены кодировки.

phpmyadminecoding

  • нажимаем на элемент ‘Сравнение’ и с выпадающего списка выбираем нужную версию кодировки.

phpmyadmin11-min

 Если после этих манипуляций проблема осталась, Вы можете обратиться к специалистам тех.поддержки ГиперХост. Мы всегда рады 24/7 помочь нашим клиентам в решении вопросов, и не только с кодировкой.

738 раз(а) 1 Сегодня просмотрено раз(а)
  • Владимир Дот

    Объясните пожалуйста один момент, как узнать какую кодировку использует браузер пользователя? Если он определяет её автоматически, то значит дело в нём, а не кодировке сайта? Короче мне очень непонятен момент совпадения кодировок.

    • маша 11

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

      • Владимир Дот

        Понятно. Значит если кракозябы, то надо просто задать кодировку вручную, вместо той что стоит по умолчанию. Благодарю за пояснение.

        • Семён Семёныч

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