Как отладить Ваш PHP сайт, чтобы использовать UTF8
По версии Google UTF8 является самой популярной кодировкой в Интернете! Я удивляюсь тому, как много существует великолепных кодировок, но мировой интернет предпочел именно эту. Еще старый добрый Dreamweaver, насколько я помню, создавал новые веб-страницы по умолчанию на utf8, и так много начинающих веб-дизайнеров, вероятно, создавали свои первые сайты на Unicode, даже не осознавая этого. Но почему при таком обильном напоре “ЗА” существуют противники этого?
Я думаю, что есть несколько причин, почему многие веб-дизайнеры и разработчики не используют Unicode в своих разработках.
Самое частое, что приходится слышать на зарубежных форумах:
"Я не нуждаюсь в Unicode, потому что мой сайт на английском языке!"
Бьюсь об заклад, это самое распространенное и глупое оправдание. Даже если предположить, что все содержимое вашего сайта на английском языке, многие из ваших посетителей могут быть иностранцами, которым будет неудобен английский в качестве основного языка. Например, если у вас есть разделы, где пользователи могут делиться своими мыслями и предложениями (форумы, формы обратной связи, комментарии к блогам и т.д.). Даже если вы скажете, что все ваши посетители являются носителями английского языка, я могу ручаться, что у некотоых из них будут символы в имени, коорые не смогут быть представлены в Windows Latin или ASCII кодировках.
"Unicode – это трудно!"
На самом деле, так и есть. Потому что для создания полностью совместимого с UNICOD веб-сайта, необходимо проделать немало шагов. Давайте пройдемся по ключевых пунктам для типичного PHP + MySQL сайта:
Краткое замечание про UTF-8 и Unicode
Действительно существует несколько форматов данных Unicode, но UTF-8 является наиболее используемой в Интернете. В этой статье я буду представлять UTF-8 и Unicode, как одно и то же.
ШАГ 1: Измените настройки своего текстового редактора / IDE, на работу в кодировке UTF8
Что нужно сделать первым шагом, это установить ваш редактор так, чтобы:
- Новые файлы создавались в UTF-8 формате, без BOM (подробнее об этом дальше)
- Существующие файлы преобразовывались в UTF-8.
Что такое BOM?
BOM (анг. Byte Order Mark) – метка порядка байтов, используется для определения формата представления Юникода (анг. Unicode). Иногда BOM применяется для обозначения формата UTF-8. BOM выглядит как символ U+FEFF в начале текста, что соответствует неразрывному пробелу с нулевой шириной.
При попадании BOM в коде php, появляются ошибки, которые срау видны на экране. В то время как код html может этого и не заметить, правда бывали замечены случаи сдвигов, уползания, нечитаемых абзацев абракадабры и многое другое.
ШАГ 2: Добавьте соответствующий <META> тег в вашем HTML заголовке
Для HTML
<meta http-equiv="content-type" content="text/html; charset=utf-8"></meta>
Для XHTML
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
Есть и альтернатива для XHTML документов – установка кодировки для веб-страницы:
<? xml version="1.0" encoding="utf-8" ?>
Но у этого способа есть один существенный недостаток, IE 6 будет возвращаться к 1997 году и отображать страницу в режиме совместимости. Так что лучше придерживаться примера с мета тэгами.
Зачастую эти два шага охватывают до шестидесяти процентов ключевых ошибок, возникающих при работе с UTF-8 на PHP. Не бойтесь работать с UTF-8, это просто!