http://wowsoft.ru/shapkawowsoft.jpg
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: Mannoroh 
Форум » MANGOS » Сайты / WWW для Mangos » Решение ЛЮБЫХ проблем с кодировками.
Решение ЛЮБЫХ проблем с кодировками.
NoobpriestДата: Среда, 10.11.2010, 10:03 | Сообщение # 1
±Каратель Флудеров±
Группа: Модераторы
Сообщений: 220
Статус: :-)
Отсутствие корректного вывода текста на странице, любые проблемы с кодировками, могут быть вызваны двумя причинами, которые несложно различить:
1. текст на странице знаками вопроса: некорректная кодировка выборки данных из базы.
2. текст на странице иероглифами: некорректная выдача кодировки страницы.
Есть пара пограничных случаев, но они редко встречаются, и с ними проще - если один вариант исправления не подошел - используйте второй.

Исправление (примеры взяты из MMfPM):

Текст из базы на странице выдается знаками вопроса.
1. Ищем в коде где у нас подключение к базе и выбор базы. Строки подобные:

Quote
@mysql_connect($db_host, $db_username, $db_password, $newlink);

Quote
@mysql_select_db($db_name, $this->link_id);

Естественно, в разных системах эти строки могут различаться. Основное их различие - в способе вызова коннекта, сам коннект всегда присутствует.
2. Между ними, или после них вставляете подобную же конструкцию:

Quote
@mysql_query("SET NAMES 'utf8'");

(обратите внимание на кавычки).
Помните, что "конец строки" в рнр обозначается точкой с запятой (";")
Если там это уже стоит - значит меняем utf8 на cp1251.

Объясняю:
Кодировка вашей базы данных может отличаться от кодировки написаной в скрипте, либо используемой по умолчанию. Запрос
Цитата:

Quote
SET NAMES 'utf8'

(обратите внимание на кавычки) ставит нужную вам кодировку принудительно.

Текст на странице выдается иероглифами.
Для исправления должны ОБЯЗАТЕЛЬНО быть выполнены следующие три условия:
1. Браузеру должен выдаваться верный заголовок:
вверху страницы, в теге <head> должен стоять мета-тег

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

(или Windows-1251).
Для примера - откройте код этой страницы форума.
2. Сервер должен отдавать верный заголовок:
в конфиге Апача, либо в файле .htaccess в корневой директории сайта, должна быть строка

Quote
AddDefaultCharset UTF-8

(или Windows-1251).
3. Код самой страницы должен быть в соответствующей кодировке. Если страница в ANSI кодировке, а сервер хочет отобразить ее в UTF-8 - получатся иероглифы.

Третий пункт в php легко и просто правится одной строкой:

Quote
header("Content-Type: text/html; charset=UTF-8");

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


 
Форум » MANGOS » Сайты / WWW для Mangos » Решение ЛЮБЫХ проблем с кодировками.
Страница 1 из 11
Поиск:



Copyright WoWsoft © 2010 | Карта сайта | Карта форума Хостинг от uCoz
При использовании материалов необходимо наличие прямой индексируемой ссылки на первоисточник
WoWsoft — World of Warcraft портал — Статьи World of Warcraft | Аддоны для WoW | Патчи World of Warcraft | Cервера WoW | Новости WoW