Кириллица или Юникод? Меняем кодировку | SelkinVitaly.RU
Кириллица или Юникод? Меняем кодировку | SelkinVitaly.RU

Проблема с кодировкой и её сменой.

Рубрика: XHTML и HTML

Просмотров: 23995

Всем привет. На протяжении многих месяцев я не мог побороть одну проблему, которая не давала мне покоя. Кодировка - как много в этом слове...

Смена кодировки на сайте

Кодировка - это определённая таблица, состоящая из некоторого кол-ва символов. Чтобы страница отразилась в доступном для нас виде, необходиму указать верную таблицу кодировки.

Выбор кодировки

Думаю, ни для кого не секрет, что сейчас на просторах Интернета наиболее используемы и восстребованы две таблицы: кириллица (Windows-1251) и 8-битная форма юникода (UTF-8). Первоначально, когда я делал первые шаги, я использовал кириллицу, т.к она была наиболее популярна. Сейчас она утрачивает свою значимость, на смену приходит более мощная - 8-битное кодирование текста Юникодом, называемое UTF-8.

Сначала я не придавал этому значение, однако после начал замечать, что моя кириллическая вёрстка сдаёт позиции, и возникают проблемы с англоязычными сервисами. Исходя из всего этого, мой вам совет - используйте UTF-8, кириллица - это прошлый день.

Смена кодировки на сайте (CP1251-UTF-8)

Обычно, смена происходит в три этапа: меняем кодировку самих страниц, указываем используемую кодирвку, меняем кодировку в БД. Теперь о каждом пункте по подробнее.

1. Смена кодировки веб-страниц

На этом этапе нам понадобится любой текстовый редактор, который способен изменить кодировку файла. Я использую для таких целях Notepade2.

Итак, открываем нашу страницу в программе:

Определение кодировки файла

Жмём Файл--Кодировка и меняем с ANSI на UTF-8.

Смена кодировки файла

2. Указываем кодировку браузеру

Браузер - это такая же груда программного кода, которая не в состоянии самостоятельно определить кодировку. Поэтому тут нужно делать вручную. Можно пойти несколькими путями:

1) Прописать meta-тег для указания кодировки

Для каждой страницы добавляем:

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

2) Прописать PHP-директиву для указания кодировки

Для каждой страницы добавляем:

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

3) Прописать директиву в .htaccess для указания кодировки

Это самый лучший и простой способ, т.к нужно добавить лишь одну строчку в файл .htaccess:

AddDefaultCharset UTF-8

3. Изменяем кодировку в БД

Это, пожалуй, самый проблематичный шаг. Дело доходило до того, что я писал в службу поддержки хостинга. Но и её представители не дали мне вразумительно ответа. Ответ был найден на стороннем блоге. Оказалосьб, что я не добавил парочку директив в файл с соединением БД.

Итак, смотрим:

1) Экспортируем наши таблицы (БЕЗ СЖАТИЯ).

Экспортируем таблицы для изменения кодировки

2) Помещаем полученный код при экспорте в пустой файл с расширение sql

3) Меняем кодировку данного файла через Notepad2 на UTF-8 без BOM.

Смена кодировки sql-дампа

4) Открываем файл и изменяем кодировку таблиц.

Находим все возможные подобные строки в нашем файле:

ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=5 ;

Меняем cp1251 на utf8.

5) Прописываем PHP-директиву в файл с соединением БД.

mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
Добавляем операторы для изменения кодировки

И только после этих операций кодировка будет сменена. Надеюсь, что вы не наступите на грабли, на которые наступил в своё время я.

Комментарии:

Добавил: alexandr (14-Apr 2012 21:22:50)

Подскажите новичку! Имеется сайт на английском языке в кодировке iso-8859-1 Также имеется сайт на немецком языке в кодировке iso-8859-1 Я хочу для практики написать сайт: в которой после названия сайта - выбор одного из языков 1 - английский, 2 - немецкий, 3 - русский. и нутри всех трех разделов (1,2,3),постоянные переходы между собой. Заранее благодарен.

Добавил: CSS (19-Mar 2012 18:54:51)

Класс спасибо большшое а то я заколебался

Добавил: Morfius (28-Nov 2011 23:23:20)

админ сайта, у тебя чего-то каптча криво работает ;) одни и те-же цифры выводит

Добавил: Morfius (28-Nov 2011 23:20:54)

Влад, ты долбоёб, если у тебя 1000 файлов и ты не смог сделать сайт на основе одной страницы и функций php!

Добавил: Чувачок (26-Aug 2011 17:22:25)

Во в первые вижу такой живой блог=) такие обсуждения=)

Добавил: казино агат (22-Aug 2011 19:45:00)

В самом начале нужно устанавливать на сервер систему в нужной кодировке, тогда сервер базы данных в месте с апач будет работать в нужной кодировке и проблем не будет. Если все уже установлено нужно в файлах конфигурации сервера установить нужную кодировку и т.д. Лучше конечно сделать все сразу при установке чем потом исправлять.

Добавил: Алексей (18-May 2011 20:34:35)

Нужна помощь в открытии файла в UTF-8 кодировке. кто может помочь - напишите плиз на мыло fynbrdfh@mail.ru

Добавил: vitleon (18-Apr 2011 0:21:49)

Статья очень хорошая, если все правильно сделать как здесь написано, будет все работать, как у меня!

Добавил: Влад (26-Mar 2011 14:56:11)

ага и че мне все 1000 файлов так открывать?

Добавил: iNd (17-Nov 2010 23:42:59)

Lilu, в DW заходите в параметры страницы и жмете изменить кодировку


Добавление комментария:

Имя *:

Email:

Текст *:

Символы на картинке *:

RSS-подписка
RSS-подписка на статьи по основам сайтостроения RSS-подписка на полезные уроки по web-языкам
Разделы статьй
Каталог товаров
Разделы уроков
Последние статьи
Последние уроки