Решение проблемы с кодировкой на сайте

Решение проблемы с кодировкой на сайте В этой статье я хочу показать как бороться с одной из самых распространенных проблем — кодировкой символов на страницах сайта. Не редко в процессе разработки можно увидеть на страницах своего сайта «краказябры», вместо текста. У этой проблемы может быть несколько причин, их мы сейчас и рассмотрим.

Первая причина — это неправильно прописанный(или вообще отсутствующий) мета-тег content-type. Этот мета-тег должен находиться внутри тега . Content-type сообщает браузеру в какой кодировке отображать вашу страницу. Поэтому значение мета-тега content-type должно соответствовать кодировке страницы, например utf-8. Выглядеть это будет так:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Вторая возможная причина — это кодировка файла, который отвечает за отображение страницы. Проверить и поменять кодировку файлов можно практически в любом текстовом редакторе, удобней всего это делать в notepad++, выбрав в меню вкладку «Кодировки», можно узнать кодировку, а также сменить ее, выбрав пункт «Преобразовать в UTF-8 без BOM».
Третьей проблемой может быть не верная кодировка базы данных. Кодировка базы данных и всех ее таблиц должна соответствовать той кодировке, что вы используете в мета-тегах и файлах. Иногда при корректной кодировке базы данных, «кракозябры» не пропадают с сайта, в таком случае стоит в коде, сразу после подключения к бд, стоит выполнить такой запрос:

SET NAMES 'utf8';

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

AddDefaultCharset utf-8

Я описал четыре самые распространенные причины проблем с отображением символов, и во всех случаях использовал кодировку utf-8. Это не значит, что нужно использовать только такую кодировку, вместо utf-8 может быть windows-1251 или какая-нибудь еще, главное чтобы кодировка была одна и та же во всех четырех случаях.

Рассказать друзьям: