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

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

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'";);

Если вам понравилась статья, вы можете отблагодарить автора любой суммой, какую сочтете для себя приемлемой:
Остались вопросы по статье? Задайте их прямо сейчас!
Подключение по SSH

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

Основные SSH команды

В продолжении статьи Как подключиться к серверу по SSH приведу список основных команд, которые вам понадобятся в работе. Вы сможете перемещаться по папкам, перезагрузить веб-сервер, сделать бэкап нужных файлов и многое другое в операционной системе CentOS. Самые нужные команды SSH Читать далее

Установка PHP CentOS 7

В продолжении предыдущих статей об основах работы с веб-сервером на CentOS через SSH: Как подключиться к серверу по SSH и Основные команды SSH в этой рассмотрим как установить или обновить PHP на сервере. Такая необходимость возникает довольно часто, например когда Читать далее

Установка MacOS High Sierra 10.13 на VirtualBox

Бывает нужно протестировать проект на MacOS, например в Safari. Или нужно сделать небольшое приложение для IOS и протестировать его на реальном устройстве. Тут есть 3 варианта. Конечно же самый лучший это реальный Mac. Второй это хакинтош и третий собственно виртуальная Читать далее

Установка MacOS High Sierra 10.13 на VMware Workstation Pro

Виртуальная машина с MacOS быстрее и стабильнее работает на VMware Workstation Pro. К тому же нет проблем с подключением внешних устройств. У меня получилось развернуть систему гораздо быстрее и не было никаких проблем с разрешением экрана, подключением Iphone и видеопамятью, Читать далее

Установка Xcode на виртуальную машину с MacOS High Sierra 10.13

Xcode среда программирования для разработки приложений для MacOS, iOS, WatchOS и TvOS. Самое главное, что это единственная среда, где вы сможете протестировать свое приложение на реальном устройстве и без активации аккаунта разработчика. В предыдущих статьях мы говорили о том, как Читать далее

Xcode запуск приложения на iPhone

В этой статье рассмотрим, как добавить поддержку устройств с IOS 12 и выше в Xcode 10. А так же подключить Iphone и запустить на нем свое приложение. 1. Настройка поддержки IOS 12 и выше в Xcode 10 В Xcode 10 Читать далее

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