Проблеми з кодуванням на сайті

Однією з найбільш частих проблем, з якою стикається початківець Web-майстер (та й не тільки початківці), це проблеми з кодуванням на сайті. Навіть у мене постійно з'являється при створенні сайтів "абракадабра". Але, благо, я прекрасно знаю, як цю проблему вирішити, тому все привожу в порядок протягом декількох секунд. І в цій статті я постараюся навчити Вас також швидко вирішувати проблеми, пов'язані з кодуванням на сайті.

Перше, що варто відзначити, це те, що всі проблеми з появою "абракадабри" пов'язані з розбіжністю кодування документа і кодування, що виставляється браузером. Припустимо, документ в windows-1251. а браузер чомусь виставляє UTF-8. А вже джерелом такої розбіжності можуть бути наступні причини.

Перша причина

Неправильно прописаний мета-тег content-type. Будьте уважні, в ньому завжди повинна знаходитися та кодування, в якому написаний Ваш документ.

друга причина

Начебто, мета-тег прописаний так, як Ви хочете, і браузер виставляє саме те, що Ви хочете, але чомусь все одно з кодуванням проблеми. Тут, майже напевно, винувато те, що сам документ має відмінну кодування. Якщо Ви працюєте в Notepad ++. то внизу праворуч є назва кодування поточного документа (наприклад, ANSI). Якщо Ви ставите в мета-теге UTF-8. а сам документ написаний в ANSI. то зробіть перетворення в UTF-8 (через меню "Кодування" і пункт "Перетворити в UTF-8 без BOM").

третя причина

Мета-тег написаний правильно, кодування документа вірна, але браузер чомусь наполегливо вибирає інше кодування. Це вже пов'язано з настройками сервера. Спосіб вирішення даної проблеми можна прочитати тут: як задати кодування в htaccess.

четверта причина

І, нарешті, остання популярна причина - це проблема з кодуванням в базі даних. По-перше, переконайтеся, що всі Ваші таблиці і поля написані в одному кодуванні, яка збігається з кодуванням решти сайту. Якщо це не допомогло, то відразу після підключення в скрипті виконайте наступний запит:

Замість "utf8" може стояти інша кодування. Після цього всі дані з бази повинні виходити в правильному кодуванні.

У даній статті я, сподіваюся, розібрав, як мінімум, 90% проблем, пов'язаних з появою "абракадабри" на сайті. Тепер Ви повинні чинити розправу над такою популярною і простий проблемою, як неправильна кодування, за дві секунди.

Запропонуйте цю статтю друзям:

Якщо Вам сподобався сайт, то розмістіть посилання на нього (у себе на сайті, на форумі, в контакті):

Вона виглядає ось так:

  • BB-код посилання для форумів (наприклад, можете поставити її в підписі):
  • Допоможіть будь ласка мені. Я роблю чат і все повідомлення заносяться в файл log.html. але при виведенні вони стають кракозябрами (українські літери, а з англійськими все нормально). Що мені робити

    Все виправив але незрозуміло як. треба було обробник і файл з повідомленнями поставити в кодування utf-8 а все інше залишити в кодуванні windows-1251. І як він взагалі працює. цікаво

    поміняй все на юнікод тоді буде працювати або своєму браузері поміняй кодування

    Привіт Михайло! Проблема така: в файлі html кодування написана так:, в проге нотпад ++ стоїть галочка UTF-8 без БOМ, при написання заголовка українські літери бачить кострубато а англ норма, ставлю просто УТФ 8 все нормально! а рекомендується робити без бoм! У чому проблема і як її вирішити. Дякуємо!