Проблеми з кодуванням на сайті
Однією з найбільш частих проблем, з якою стикається початківець Web-майстер (та й не тільки початківці), це проблеми з кодуванням на сайті. Навіть у мене постійно з'являється при створенні сайтів "абракадабра". Але, благо, я прекрасно знаю, як цю проблему вирішити, тому все привожу в порядок протягом декількох секунд. І в цій статті я постараюся навчити Вас також швидко вирішувати проблеми, пов'язані з кодуванням на сайті.
Перше, що варто відзначити, це те, що всі проблеми з появою "абракадабри" пов'язані з розбіжністю кодування документа і кодування, що виставляється браузером. Припустимо, документ в windows-1251. а браузер чомусь виставляє UTF-8. А вже джерелом такої розбіжності можуть бути наступні причини.
Перша причина
Неправильно прописаний мета-тег content-type. Будьте уважні, в ньому завжди повинна знаходитися та кодування, в якому написаний Ваш документ.
друга причина
Начебто, мета-тег прописаний так, як Ви хочете, і браузер виставляє саме те, що Ви хочете, але чомусь все одно з кодуванням проблеми. Тут, майже напевно, винувато те, що сам документ має відмінну кодування. Якщо Ви працюєте в Notepad ++. то внизу праворуч є назва кодування поточного документа (наприклад, ANSI). Якщо Ви ставите в мета-теге UTF-8. а сам документ написаний в ANSI. то зробіть перетворення в UTF-8 (через меню "Кодування" і пункт "Перетворити в UTF-8 без BOM").
третя причина
Мета-тег написаний правильно, кодування документа вірна, але браузер чомусь наполегливо вибирає інше кодування. Це вже пов'язано з настройками сервера. Спосіб вирішення даної проблеми можна прочитати тут: як задати кодування в htaccess.
четверта причина
І, нарешті, остання популярна причина - це проблема з кодуванням в базі даних. По-перше, переконайтеся, що всі Ваші таблиці і поля написані в одному кодуванні, яка збігається з кодуванням решти сайту. Якщо це не допомогло, то відразу після підключення в скрипті виконайте наступний запит:
Замість "utf8" може стояти інша кодування. Після цього всі дані з бази повинні виходити в правильному кодуванні.
У даній статті я, сподіваюся, розібрав, як мінімум, 90% проблем, пов'язаних з появою "абракадабри" на сайті. Тепер Ви повинні чинити розправу над такою популярною і простий проблемою, як неправильна кодування, за дві секунди.
Запропонуйте цю статтю друзям:
Якщо Вам сподобався сайт, то розмістіть посилання на нього (у себе на сайті, на форумі, в контакті):
Вона виглядає ось так:
Допоможіть будь ласка мені. Я роблю чат і все повідомлення заносяться в файл log.html. але при виведенні вони стають кракозябрами (українські літери, а з англійськими все нормально). Що мені робити
Все виправив але незрозуміло як. треба було обробник і файл з повідомленнями поставити в кодування utf-8 а все інше залишити в кодуванні windows-1251. І як він взагалі працює. цікаво
поміняй все на юнікод тоді буде працювати або своєму браузері поміняй кодування
Привіт Михайло! Проблема така: в файлі html кодування написана так:, в проге нотпад ++ стоїть галочка UTF-8 без БOМ, при написання заголовка українські літери бачить кострубато а англ норма, ставлю просто УТФ 8 все нормально! а рекомендується робити без бoм! У чому проблема і як її вирішити. Дякуємо!