Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

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

Темы по наиболее часто задаваемым вопросам по phpBB 2.0.x. Читать в первую очередь!
rbor
phpBB 1.0.0
Сообщения: 8
Стаж: 17 лет 11 месяцев

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

Сообщение rbor »

Описание проблемы:
кодировка, прописанная в файле не воспроизводится при обновлении страницы. Русские буковки пишутся кракозябрами. В 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 пишет вот что:
Изображение
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5362
Стаж: 19 лет 10 месяцев
Откуда: Питер
Благодарил (а): 193 раза
Поблагодарили: 828 раз

Сообщение Siava »

Зашёл..
В <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:
rbor
phpBB 1.0.0
Сообщения: 8
Стаж: 17 лет 11 месяцев

Сообщение rbor »

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

Сообщение Siava »

rbor
Быть может с кодировкой-то всё в порядке, а вот при создании форума у вас в браузере и была выставлена западно-европейская? И при этом, сначала не было руссификации, то есть ставился английский форум, в конфигах прописывались русские названия, форумы, а потом вы руссифицировали и бац.. такая хрень.
Так ведь?
Аватара пользователя
/DiOs
Former team member
Сообщения: 1139
Стаж: 18 лет 9 месяцев
Откуда: Ленинград

Сообщение /DiOs »

В PMA четко показано, что в MySQL установлена кодировка UTF-8. Колейшн cp1251_general_ci для нее как бы нонсенс.
И если я неправ, пусть старшие товарищи поправят меня
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5362
Стаж: 19 лет 10 месяцев
Откуда: Питер
Благодарил (а): 193 раза
Поблагодарили: 828 раз

Сообщение Siava »

/DiOs
/DiOs писал(а):В PMA четко показано, что в MySQL установлена кодировка UTF-8.
Это кодировка для просмотра, а не базы данных.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
/DiOs
Former team member
Сообщения: 1139
Стаж: 18 лет 9 месяцев
Откуда: Ленинград

Сообщение /DiOs »

Siava писал(а):Это кодировка для просмотра, а не базы данных.
В верхней строчке? Да. А в следующей?
И если я неправ, пусть старшие товарищи поправят меня
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5362
Стаж: 19 лет 10 месяцев
Откуда: Питер
Благодарил (а): 193 раза
Поблагодарили: 828 раз

Сообщение Siava »

/DiOs
В нижней тоже для просмотра. Эти 2 параметра влияют только на то, как будет phpmyadmin отображать/работать с содержимым баз данных. Чтобы узнать реальную кодировку базы, надо уже в ней самой (в параметрах или в структуре) смотреть соответствующий параметр =)
Аватара пользователя
/DiOs
Former team member
Сообщения: 1139
Стаж: 18 лет 9 месяцев
Откуда: Ленинград

Сообщение /DiOs »

Siava писал(а):Чтобы узнать реальную кодировку базы, надо уже в ней самой (в параметрах или в структуре) смотреть соответствующий параметр =)
М-да? Я думал, что в РМА оно и отображается... В моей древней весии этого нет вообще и я верил в силу разума. Как всегда, напрасно...

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

Siava
Вообще я не про pull-down lists, а про то, где жирным текстом без возможности выбора.
И если я неправ, пусть старшие товарищи поправят меня
rbor
phpBB 1.0.0
Сообщения: 8
Стаж: 17 лет 11 месяцев

Сообщение rbor »

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)
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16723
Стаж: 18 лет 6 месяцев
Откуда: Красноярск
Благодарил (а): 561 раз
Поблагодарили: 1854 раза

Сообщение rxu »

Гуд. Ссылка на тему занесена в FAQ, вопрос Q26.
Изображение
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5362
Стаж: 19 лет 10 месяцев
Откуда: Питер
Благодарил (а): 193 раза
Поблагодарили: 828 раз

Сообщение Siava »

rbor
А насчет того, что кодировка внутри таблицы
Вот тут конечно могут быть косяки в будущем, связанные с неправильной сортировкой ников и т.п.. советую всё же базу создавать в кодировке cp1251_general_ci.
Действительно в includes/page_header.php в самом н изу есть вот что
Решение проблемы "черезжопное", но решение :mrgreen:

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

/DiOs
То что mysql в UTF-8 почти у всех должно отображаться.. это, так сказать, стандартная для него кодировка :)
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16723
Стаж: 18 лет 6 месяцев
Откуда: Красноярск
Благодарил (а): 561 раз
Поблагодарили: 1854 раза

Сообщение rxu »

Siava писал(а):Решение проблемы "черезжопное", но решение
Вот именно. Лучше, чем никакого решения :)
Изображение
rbor
phpBB 1.0.0
Сообщения: 8
Стаж: 17 лет 11 месяцев

Сообщение rbor »

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

Спасибо всем за помощь
Аватара пользователя
/DiOs
Former team member
Сообщения: 1139
Стаж: 18 лет 9 месяцев
Откуда: Ленинград

Сообщение /DiOs »

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.
И если я неправ, пусть старшие товарищи поправят меня

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