Jump to content
  • 0

FAQ по кодировкам.


Игорь Ермаков
 Share

Question

Часто возникают типичные вопросы по кодировкам, типа: "перенёс страницу на хостинг а там одни квадратики". Ответы на эти вопросы не менее типичны. Прежде чем задать вопрос относительно кодировок обязательно прочтите этот FAQ.

В: На странице не вместо кириллицы отображаются какие-то закорючки и кубики, что делать? >(

О: Скорее всего вы либо не задали странице кодировку в meta-тегах, либо она не совпадает с кодировкой документа.

1. Сохраните файл в кодировке UTF-8 (без BOM).

2. В заголовках (<head>) страницы укажите эту же кодировку:

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

Более подробная информация по использованию тега meta: http://htmlbook.ru/html/meta.html

Кодировка, которую вы указываете в HTML-разметке документа, должна совпадать с кодировкой самого документа.

В: При отображении страницы в браузере, в самом начале кода появляется символ: п»ї

О: Сохраните документ с кодировкой UTF-8 (без BOM).

О отличиях кодировки UTF-8 от кодировки UTF-8 (без BOM), а именно о том почему появляется данный символ, вы можете читать по этой ссылке.

В: Всё нормально сохранил, указал кодировку странице, но при загрузке на веб-сервер на странице всё равно одни квадратики.

О: Значит ваш веб-сервер настроен на отображение другой кодировки, эта проблема решается двумя способами:

1. Передайте кодировку файла, при помощи php-функции header();

Выглядит это так, в приведённом примере мы передаём кодировку UTF-8:

<?php header('Content-Type: text/html; charset=utf-8'); ?>

2. Можно настроить ваш веб-сервер так, чтобы он адекватно отображал нужную кодировку, для этого:

- Идём сюда: usr\local\apache\conf\httpd.conf

- Открываем файл любым редактором.

- При помощи поиска (Ctrl+F) ищем строчку: "AddDefaultCharset здесь как правило указана какая-то кодировка"

- Меняем кодиовку на свою, к примеру на UTF-8 выглядеть будет так: "AddDefaultCharset utf-8"

- Делаем рестарт веб-сервера.

3. Поскольку на виртуальных хостингах нет доступа к confog-файлам апача, то кладём в корень сайта файл .htaccess и в нем пишем: "AddDefaultCharset utf-8"

4. При работе в одной связке Nginx+Apache, добавление директивы AddDefaultCharset ничего не дает, поскольку всю статику отдает Nginx и он зачастую управляет кодировкой. В таких случаях где-то в управлении хостингом должна быть настройка кодировки. Лучше всего об этом спросить у техсаппорта.

Внимание: только для веб-сервера типа Apach.

Благодарности при создании FAQ:

- Justnewone и Veselof за учатие в этой теме: http://forum.htmlbook.ru/index.php?showtopic=16883&hl=

- xPoint за пункты 3 и 4 в последнем вопросе.

Кому есть, что добавить/исправить милости просим.

Edited by Игорь Ермаков
Link to comment
Share on other sites

Recommended Posts

  • 0

таблицу для верности создал по новой, в поле "Сравнение" выбрал utf8_general_ci

в шапку рнр-страницы вставил Вашу строку:

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

то же самое, вот ссылка на страницу: http://bcomp.com.ua/in2.php

после mysql_connect() выполните запрос


mysql_query("SET NAMES UTF8");

Link to comment
Share on other sites

  • 0

Недавно обнаружил, что мой любимый редактор EmEditor при смене кодировки с Windows-1251 на Utf-8 добавляет в начало файла строку п»ї, которую не видно в самом редакторе и которая создает кучу проблем. Теперь регулярно проверяю файлы на наличие этой строки локальным поиском. Проблема еще в том, что эту строку не набрать с клавиатуры, по крайней мере, если не помнишь кодов, составляющих ее символов. Поэтому, в случае чего, надо помнить, где ее можно найти.

ПС: Если что, буду искать эту строку (п»ї) здесь, по ключевым словам: freeneutron проблемная строка emeditor :)

Link to comment
Share on other sites

  • 0

когда-то люди подумали что смогут достигуть величия Бога, и стали строить Вавилонскую башню. но Бог не фраер и дал им по рогам, башня поломалась, а мы получили в наказание свыше 9000 различнх локалей. и эти локали все бли разные и вызывали на мониторах вавилонских демонов - крякозябров. но потом 2 сентября 1992 года Кен Томпсон и Роб Пайк покурили годной травы и вавилон пал. и появился utf-8!!!1

теперь можно везде задавать utf-8 и не загружать мозг вопросами для чего и как, в любой стране мира твой документ будет отображён как надо. Bayanruby, она там что бы сбивать вас с пути истинного. юзайте ютф всегда, юзайте ютф везде. и кодировка не будет ни на что влиять, а будет работать как надо.

+1 :rofl:

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy