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

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

Всім доброго часу доби. На зв'язку Олексій Гулинін. У минулій статті ми розібрали створення таблиць в html. У даній статті я б хотів розповісти про проблему, з якою ви обов'язково зіткнетеся (якщо ще не зіткнулися) в своїй практиці. А проблема ця пов'язана з кодуванням на сайті. Нерідко буває така ситуація: ти сидиш, щось придумуєш, в результаті твої думки виражаються в написаний код. Відкриваєш своє творіння в браузері, а там написана повна нісенітниця, або як зазвичай дану дурницю називають - "кракозябри". Тут очевидно одне, що проблема з кодуванням на сайті. Швидше за все у вас за замовчуванням стоїть кодування windows-1251 (кирилиця). а браузер намагається відкрити ваш файл в кодуванні utf-8. Коротко про те, що таке кодування. Кодування - це якась таблиця, яка кожному символу ставить у відповідність якийсь машинний код. Відповідно наші українські букви в одному кодуванні мають один код, в інших - інший код. Друзі, використовуйте всюди кодування utf-8 і буде вам щастя. По-іншому utf-8 називається Юнікод.

Давайте створимо тестовий документ в Notepad ++ і запишемо наступний код.

В меню Notepad ++ перевірте, щоб нагорі стояло "Кодування" - "Кодувати в ANSI". Ми зараз з вами штучно створимо проблему з кодуванням. Спробуйте зараз відкрити даний файл в браузері. Ми побачимо ієрогліфи. Справа тут в тому, що ми створили наш файл в кодуванні ANSI (кирилиця), а браузеру повідомили, що наш файл в кодуванні utf-8 ().

Причини, за якими виникають проблеми з кодуванням на сайті:

1) Неправильне значення атрибута charset у мета-тега.

2) В меню Notepad ++ перевірте, щоб кодування файлу була utf-8. Це потрібно зробити "Кодування" - "Кодувати в UTF-8 (без BOM)". В інтернеті можна знайти визначення, что такое "BOM", але воно малозрозуміле. Як я зрозумів, на початку документа, ставиться нерозривний пробіл нульової довжини. Він нам не потрібен, тому завжди ставте "без BOM".

Даною інструкцією ми говоримо сервера, що у нас кодування за замовчуванням "utf-8". Якщо це не допомогло, то потрібно написати в цьому ж файлі наступний код:

Тут ми намагаємося сказати сервера, що нам не потрібна кодування за замовчуванням. Якщо після даних махінацій нічого не допомогло, то необхідно писати хостеру і вирішувати дану проблему з ним. Можливо він щось підкаже.

4) Ще одна проблема може бути пов'язана з кодуванням бази і таблиць в ній. Необхідно, щоб вони були виконані в одному кодуванні, як і весь сайт. У своїй практиці, я з такою проблемою не стикався. Мало не забув один момент, після того, як ви запитом витягаєте дані з бази даних, в початок запиту поставте інструкцію SET NAMES "utf8" (замість utf8 може бути будь-яка інша кодування).

У даній статті ви дізналися, як вирішити проблему з кодуванням на сайті.

Ще статті.

  • Проблема з кодуванням на сайті
    Мета-теги в HTML
  • Проблема з кодуванням на сайті
    Створення форм в HTML
  • Проблема з кодуванням на сайті
    Прогалини в HTML
  • Проблема з кодуванням на сайті
    HTML-теги для тексту
  • Проблема з кодуванням на сайті
    Посилання та зображення в HTML