Пропустить

И снова проблемы с кодировкой

Темы по наиболее часто задаваемым вопросам по phpBB 2.0.x. Читать в первую очередь!

И снова проблемы с кодировкой

Сообщение rbor » 09.01.2007 1:18

Описание проблемы:
кодировка, прописанная в файле не воспроизводится при обновлении страницы. Русские буковки пишутся кракозябрами. В header'е прописано:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
Но браузер упорно считывает её как Западноевропейскую. При смене кодировки в браузере вручную бувы на месте - отображаются как надо, но только до тех пор пока не перезагрузится страница или по ссылке не пойду.

Попробовал еще вот что: писал пост из-под русского языка - получил западноевропейскую кодировку поста. Писал из-под английского - нормальный текст...

Произведенные изменения, после которых начались неполадки:
Изменений не вносилось, проблема наблюдалась как на 2.0.20 так и на 2.0.22.
Версия phpBB*: 2.0.22 с Вашего сайта
Используемые шаблоны: всё стандартно, ничего не менял (простите - русификацию поставил конечно)
Используемые моды: -
Версия PHP: Based on PHP 4.4.4
Используемая СУБД и её версия: MySQL 4.1.22
Ссылка на конференцию: http://rbor.rb.funpic.de/forum
Есть ли у вас тестовый аккаунт**:
логин: тест 2
пасс: 0000
Во время создания тестового аккаунта решил сделать имя на русском. Оно отображается в виде те&am. Такую проблему решали убиранием строки с кодировкой
<meta http-equiv="Content-Type" content="text/html; charset={S_CONTENT_ENCODING}"  />
из шаблона шапки.
Помогло: создал еще один тестовый аккаунт - коды убрались, имя теперь на русском. Но оно не читается вместе с остальным контентом
òåñò 2 - это "тест 2"

Новые сообщения также отображаются в западноевропейской кодировке..
Единственный вариант - залил русские картинки в английский язык и поставил его... =(
Использовался ли поиск для решения проблемы: естественно.
Если да, то какие запросы вы использовали: кириллица, кодировка, русский язык

Чуть не забыл: phpMyAdmin пишет вот что:
Изображение

rbor
phpBB 1.0.0
 
Сообщения: 8
Зарегистрирован: 08.01.2007 22:00
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Siava » 09.01.2007 2:11

Зашёл..
В <head> никакого упоминания о кодировке нет, верните обратно строчку.
И вообще, в файле lang_main.php можно выставить нужную кодировку. ;)

У меня там даже маленький FAQ написан:
//    Краткая информация о проблемах с русским языком:
//
// 1) Если вместо русских букв вылезают символы &####;, то выкиньте из шаблона
//    overall_header.tpl строку <meta http-equiv="Content-Type" content="text/html; charset={S_CONTENT_ENCODING}">
// 2) Если не работает поиск по русскому тексту, то раскомментируйте следующую строку
//    (может не сработать, если нет соответствующей локали: проконсультируйтесь у своего
//    системного администратора):
setlocale(LC_ALL, 'ru_RU.CP1251');
$lang['ENCODING'] = 'windows-1251';


P.S.
за оформление темы респект, давно не видел тут нормальной новой темы, поэтому ответ даю соответствующий :mrgreen:
Аватара пользователя
Siava
phpBB 3.0.5
 
Сообщения: 2580
Зарегистрирован: 11.01.2005 14:29
Откуда: Питер
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Сообщение rbor » 09.01.2007 3:56

Siava
я это пробовал уже (выставить сразу 1251 кодировку)
именно исходя из этого FAQ я и убрал строку из overall_header.tpl и даже из simple_header.tpl и раскомментировал $lang['ENCODING'] = 'windows-1251'; ибо проблема с &####;-подобными никами существовала, я описал её тоже

rbor
phpBB 1.0.0
 
Сообщения: 8
Зарегистрирован: 08.01.2007 22:00
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Siava » 09.01.2007 4:12

rbor
Быть может с кодировкой-то всё в порядке, а вот при создании форума у вас в браузере и была выставлена западно-европейская? И при этом, сначала не было руссификации, то есть ставился английский форум, в конфигах прописывались русские названия, форумы, а потом вы руссифицировали и бац.. такая хрень.
Так ведь?
Аватара пользователя
Siava
phpBB 3.0.5
 
Сообщения: 2580
Зарегистрирован: 11.01.2005 14:29
Откуда: Питер
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Сообщение /DiOs » 09.01.2007 10:15

В PMA четко показано, что в MySQL установлена кодировка UTF-8. Колейшн cp1251_general_ci для нее как бы нонсенс.
И если я неправ, пусть старшие товарищи поправят меня
Аватара пользователя
/DiOs
Former team member
 
Сообщения: 1139
Зарегистрирован: 21.02.2006 7:53
Откуда: Ленинград
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Siava » 09.01.2007 12:05

/DiOs
/DiOs писал(а):В PMA четко показано, что в MySQL установлена кодировка UTF-8.

Это кодировка для просмотра, а не базы данных.
Генератор db_update-файлов для phpBB 2.0
Еще одно нарушение правил и будете забанены.
© Mr. Anderson
Аватара пользователя
Siava
phpBB 3.0.5
 
Сообщения: 2580
Зарегистрирован: 11.01.2005 14:29
Откуда: Питер
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Сообщение /DiOs » 09.01.2007 12:23

Siava писал(а):Это кодировка для просмотра, а не базы данных.

В верхней строчке? Да. А в следующей?
И если я неправ, пусть старшие товарищи поправят меня
Аватара пользователя
/DiOs
Former team member
 
Сообщения: 1139
Зарегистрирован: 21.02.2006 7:53
Откуда: Ленинград
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Siava » 09.01.2007 13:35

/DiOs
В нижней тоже для просмотра. Эти 2 параметра влияют только на то, как будет phpmyadmin отображать/работать с содержимым баз данных. Чтобы узнать реальную кодировку базы, надо уже в ней самой (в параметрах или в структуре) смотреть соответствующий параметр =)
Аватара пользователя
Siava
phpBB 3.0.5
 
Сообщения: 2580
Зарегистрирован: 11.01.2005 14:29
Откуда: Питер
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Сообщение /DiOs » 09.01.2007 14:49

Siava писал(а):Чтобы узнать реальную кодировку базы, надо уже в ней самой (в параметрах или в структуре) смотреть соответствующий параметр =)

М-да? Я думал, что в РМА оно и отображается... В моей древней весии этого нет вообще и я верил в силу разума. Как всегда, напрасно...

Добавлено спустя 1 минуту 40 секунд:

Siava
Вообще я не про pull-down lists, а про то, где жирным текстом без возможности выбора.
И если я неправ, пусть старшие товарищи поправят меня
Аватара пользователя
/DiOs
Former team member
 
Сообщения: 1139
Зарегистрирован: 21.02.2006 7:53
Откуда: Ленинград
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение rbor » 09.01.2007 15:59

Siava писал(а):rbor
Быть может с кодировкой-то всё в порядке, а вот при создании форума у вас в браузере и была выставлена западно-европейская? И при этом, сначала не было руссификации, то есть ставился английский форум, в конфигах прописывались русские названия, форумы, а потом вы руссифицировали и бац.. такая хрень.
Так ведь?


В конфигах англицкие прописывались. До руссификации. Сейчас переустановлю форум попробую с русской кодирвкой.

А насчет того, что кодировка внутри таблицы - правда
Изображение

Ещё одно замечатение. Основной сайт тоже сидит в это БД, с теми же параметрами. Имеет также не 1251 кодировку в БД. Но пхп отправляет заголовок что он 1251 браузеру. Строки метапараметра вообще нет на страницах, но все ок. Может просто вставить в заголовок строку пхп про 1251?

Добавлено спустя 19 минут 50 секунд:

Ура!!!! урррааааа!)))
Спасибо всем за помощь!

Действительно в includes/page_header.php в самом н изу есть вот что
header ('Expires: 0');
header ('Pragma: no-cache');
$template->pparse('overall_header');
?>


добавил строку
header('Content-Type: text/html; charset=windows-1251');


Получилось
header ('Expires: 0');
header ('Pragma: no-cache');
header('Content-Type: text/html; charset=windows-1251');

$template->pparse('overall_header');

?>


И все заработало)

п.с. в файле admin/page_header.php надо проделать то же самое, иначе админка не будет на 1251)

rbor
phpBB 1.0.0
 
Сообщения: 8
Зарегистрирован: 08.01.2007 22:00
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение rxu » 09.01.2007 16:15

Гуд. Ссылка на тему занесена в FAQ, вопрос Q26.
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
 
Сообщения: 7314
Зарегистрирован: 12.05.2006 17:16
Откуда: Красноярск
Благодарил (а): 2 раз.
Поблагодарили: 251 раз.

Сообщение Siava » 09.01.2007 16:45

rbor
А насчет того, что кодировка внутри таблицы

Вот тут конечно могут быть косяки в будущем, связанные с неправильной сортировкой ников и т.п.. советую всё же базу создавать в кодировке cp1251_general_ci.

Действительно в includes/page_header.php в самом н изу есть вот что
Решение проблемы "черезжопное", но решение :mrgreen:

Добавлено спустя 1 минуту 30 секунд:

/DiOs
То что mysql в UTF-8 почти у всех должно отображаться.. это, так сказать, стандартная для него кодировка :)
Генератор db_update-файлов для phpBB 2.0
Еще одно нарушение правил и будете забанены.
© Mr. Anderson
Аватара пользователя
Siava
phpBB 3.0.5
 
Сообщения: 2580
Зарегистрирован: 11.01.2005 14:29
Откуда: Питер
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Сообщение rxu » 09.01.2007 16:47

Siava писал(а):Решение проблемы "черезжопное", но решение

Вот именно. Лучше, чем никакого решения :)
Изображение
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
 
Сообщения: 7314
Зарегистрирован: 12.05.2006 17:16
Откуда: Красноярск
Благодарил (а): 2 раз.
Поблагодарили: 251 раз.

Сообщение rbor » 09.01.2007 17:14

Siava
главное - работает. Приинсталляции форума сменил кодировку, теперь таблицы в cp1251_general_ci.

Спасибо всем за помощь

rbor
phpBB 1.0.0
 
Сообщения: 8
Зарегистрирован: 08.01.2007 22:00
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение /DiOs » 09.01.2007 20:19

Siava
Позволю себе все-таки некоторый комментарий.

Siava писал(а):всё же базу создавать в кодировке cp1251_general_ci

Нет такой кодировки. Ну нет. Есть кодировка (для точности -- character_set) cp1251. win1251. koi8_ru. utf8. И т.д. Это не более, чем просто набор символов (пары код-символ). И есть понятие "collation". Я не уверен, что применяемый перевод "сопоставление" -- лучший, но бороться за чистоту языка не будем, ибо уже прижилось. Эти самые collation описывают правила сортировки в пределах одного character set, ибо таких правил для некоей таблицы символов в общем случае может быть много. Например, может быть правило сортировки не АаБбВвГг ..., а АБВГ... абвг...Так вот, cp1251_general_ci -- это одно из возможных collation (причем дефолтовое, то есть наиболее употребимое) для таблицы символов (кодировки, character set) cp1251.

Никого не хочу обидеть, просто очень часто у нас на форуме вижу смешение понятий character set и collation.
И если я неправ, пусть старшие товарищи поправят меня
Аватара пользователя
/DiOs
Former team member
 
Сообщения: 1139
Зарегистрирован: 21.02.2006 7:53
Откуда: Ленинград
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

След.

Вернуться в FAQ (phpBB 2.0.x)

 

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Место для вашей рекламы