Что такое кракозябры и как их исправить

Что такое кракозябры и как их исправить

10 февраля 2020 Разное

Кракозябры — это искаженный текст, который выводится по причине не правильно установленной кодировки. Чаще всего это происходит когда русские символы в кодировке CP-1251 открываются в юникоде UTF-8.

Лучше всего в проектах всегда использовать кодировку UTF-8, так как эта универсальная кодировка и она поддерживает большинство символов. С ней будет меньше всего проблем, а сайт будет корректно отображаться в любой точке мира.

Как бороться с кракозябрами?

Сохранять файлы в UTF-8 без BOM

Во первых исходные файлы должны быть сохранены в кодировке UTF-8 без BOM. Это значит, что текст не будет содержать пустых символов, которые могут мешать интерпретации исходного кода или отображаться на сайте в виде точек. Преобразовать тексты можно в бесплатном редакторе Notepad++ в меню Кодировки → Преобразовать в UTF-8.

Добавлять мета-тег charset

В тегах <head></head> можно указать кодировку для браузера следующим тегом:

<meta charset="UTF-8" />

Указывать в PHP-функции header()

В самом начале файла .php добавляем следующий код:

header('Content-Type: text/html; charset=utf-8');

Указывать кодировку в файле .htaccess

Ещё один способ указать кодировку в файле .htaccess

AddDefaultCharset utf-8

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

Кодировка сайта и базы данных MySQL должны совпадать. Если это не так, то следует конвертировать базу данных в кодировку UTF-8. Следующий запрос конвертирует указанную таблицу в кодировку UTF -8:

ALTER TABLE `db_name`.`table_name` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

Конвертируем сразу все таблицы. Этот запрос будет работать в MySQL версии 5 и выше:

SELECT CONCAT(  'ALTER TABLE `', t.`TABLE_SCHEMA` ,  '`.`', t.`TABLE_NAME` ,  '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;' ) AS sqlcode
FROM  `information_schema`.`TABLES`
WHERE 1 
AND t.`TABLE_SCHEMA` =  'My_DB_for_convert'
ORDER BY 1 
LIMIT 0 , 90

И указать кодировку базы данных в подключении. Для этого после подключения к БД добавляем:

mysql_query("SET NAMES 'UTF8'");

В 1С-Битрикс например, кодировку базы можно указать в файле /bitrix/php_interface/after_connect.php:

$DB->Query("SET NAMES 'utf8'";);
Остались вопросы по статье? Задайте их прямо сейчас!
Похожие записи
Хостинг, которым я пользуюсь

Хочу рассказать об очень классном хостинге, которым я начал пользоваться примерно год назад - это beget.ru. До этого мне приходилось иметь дело с разными хостинг-компаниями и все, что я расскажу основано на моем личном многолетнем опыте. Долгое время я пользовался Читать далее

Git для начинающих

Git - это бесплатная система контроля версий с открытым исходным кодом. Это звучит невероятно скучно до тех пор, пока вам не понадобится вернуться к предыдущей версии кода, и сделать это удачно. Это программное обеспечение, которое управляет вашим исходным кодом, снимая Читать далее

Chart.js примеры создания диаграмм и графиков

Если у вас есть насыщенный информацией веб-сайт или приложение, вы можете визуализировать свои данные, чтобы пользователи могли лучше понять их. Хотя таблицы могут быть весьма полезны в некоторых случаях, таких как таблицы сравнения цен и характеристик, другие виды информации легче Читать далее

Instagram виджет для сайта

К сожалению в Instagram нет стандартного функционала для вывода виджета на сайт, такого как например Вконтакте и Facebook. Но есть несколько способов создать подобный виджет. Первый это написать такой самому, второй воспользоваться готовым кодом конструктора. По сути конструктор это тоже Читать далее

Бесплатный фотосток без регистрации

freepic - это бесплатный фотосток, поддерживающий русский язык, на котором можно совершенно бесплатно и без регистрации скачать векторы, PSD, иконки и фотографии. И конечно же легально использовать их на своих ресурсах. Сайт: ru.freepik.com У сервиса есть удобный поиск с фильтром Читать далее

Как очистить кэш шаринг постов в соц сетях

Довольно распространённая проблема, когда после добавления ссылки на внешнюю страницу в соц. сеть, её данные, в том числе и изображение, кэшируются, и при последующем изменении остаются прежними. В этой статье вы узнаете, как можно очистить кэш расшариваемых внешних страниц сайта Читать далее

Определить CMS сайта плагин

Wappalyzer - это кроссплатформенная утилита, которая определяет технологии, используемые на веб-сайтах. Она обнаруживает системы управления контентом, платформы электронной коммерции, веб-фреймворки, серверное программное обеспечение, аналитические инструменты и многое другое. Установить Weppalyzer можно как плагин для браузеров Google Chrome и Firefox, а Читать далее

Добавить комментарий

*

code