[FAQ] Проблема с UTF8

Темы по наиболее часто задаваемым вопросам по phpBB 3.0.x. Читать в первую очередь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
volset
phpBB 1.0.0
Сообщения: 8
Стаж: 17 лет 7 месяцев
Поблагодарили: 1 раз

[FAQ] Проблема с UTF8

Сообщение volset »

Иногда вместо текста отображаются ?????
Ключевое слово здесь иногда :D

Вот пациент http://www.astra-club.org.ua
Для того что бы отловить баг надо несколько раз нажимать кнопку обновить до появления бага.
От браузера независит так как знаки "??????" уже приходят с сервера.
Текст который читается з базы отображается всегда нормально.
PHP Version 5.2.1

Если существует проблема, проявляющаяся в "битом тексте" - замене некоторых символов в сообщении на BOM (знак вопроса в ромбе):

Основной метод решения:
Установить значение mbstring.func_overload равным 0.

Возможное решение:
В корневой директории форума создайте файл .htaccess со следующим содержанием:
.htaccess

Код: Выделить всё

CharsetDisable On
CharsetDefault UTF-8 
CharsetSourceEnc UTF-8
Если после этого теряется работоспособность ресурса, попробовать убрать из вышеуказанного кода строку

Код: Выделить всё

CharsetDisable On
Если не помогает, то вместо первого попробовать добавить в .htaccess строку

Код: Выделить всё

AddDefaultCharset UTF-8
Если у хостера Russian Apache попробуйте добавить в .htaccess

Код: Выделить всё

CharsetDisable On
AddHandler default-handler html
CharsetDefault utf-8
И если совсем ничего не помогает:

Код: Выделить всё

OPEN
includes/utf/utf_tools.php

FIND
function utf8_normalize_nfc($strings)
{

AFTER, ADD
return $strings;
уже приходят с сервера.
Текст который читается з базы отображается всегда нормально.
PHP Version 5.2.1

Если существует проблема, проявляющаяся в
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

Сообщение rxu »

да - это на месте ромбов с вопросами что? HTML сущность?
Изображение
Аватара пользователя
labview
phpBB 1.4.3
Сообщения: 88
Стаж: 17 лет 3 месяца

Сообщение labview »

А у меня в бд тоже вопросики стоят, может я бд неправильно с одного хоста на другой перенёс? Хотя наверное нет, ведь если я пишу новое сообщение, то тоже вопросительные знаки вылазиют.
MDD
phpBB 1.2.1
Сообщения: 23
Стаж: 17 лет 3 месяца

Сообщение MDD »

labview писал(а):Извините, а вы не подскажете что именно нужно сделать в апаче, если директивы из первого поста не понимаются?
пока видимо ни чего, ждем патча :roll: :(

Добавлено спустя 2 минуты 15 секунд:
rxu писал(а):MDD
А в базе это также выглядит?
да, я об этом писал выше... в базе на этом месте просто знак "?" (не в ромбе :), если это важно)

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

смотрю на эти крякозяблики и меня не оставляет смутное ощущение, что в этом есть какая-то система....

сейчас посмотрел еще раз - похоже бьются только те символы, перед которыми стоит пробел :shock:
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

Сообщение rxu »

MDD
В порядке эксперимента, закачайте в корневую папку форума и выполните прилагаемый скрипт (предварительно разархивируйте, естественно).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Изображение
Bel
phpBB 1.4.1
Сообщения: 44
Стаж: 18 лет 1 месяц
Откуда: Беларусь, Минск

Сообщение Bel »

rxu
Проверка того, что такое с текстом в UTF-8 тут происходит :D
MDD
phpBB 1.2.1
Сообщения: 23
Стаж: 17 лет 3 месяца

Сообщение MDD »

а не рухнет все :)?
Bel
phpBB 1.4.1
Сообщения: 44
Стаж: 18 лет 1 месяц
Откуда: Беларусь, Минск

Сообщение Bel »

Код: Выделить всё

Ðåæèññ¸ð: Ãàðè Ðîññ 
 ãëàâíûõ ðîëÿõ: Òîáè Ìàãâàéð, Ðèç Óèçåðñïóí, Óèëüÿì Õ. Ìýéñè 
Еще было замечено такое :\
MDD
phpBB 1.2.1
Сообщения: 23
Стаж: 17 лет 3 месяца

Сообщение MDD »

поробую

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

результат...

Код: Выделить всё

Проверка того, что такое с текстом в UTF-8 тут происходит
Добавлено спустя 40 секунд:

а нет идей по поводу того, почему именно перед пробелами символы мутируют?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

Сообщение rxu »

По крайней мере, в этом скрипте текст, подготовленный к отправке в базу, не имеет подобного глюка с ромбами - знаками вопроса. Что приводит к мысли о проблемах связки с БД. Конкретных идей пока нет.
Изображение
Аватара пользователя
labview
phpBB 1.4.3
Сообщения: 88
Стаж: 17 лет 3 месяца

Сообщение labview »

Итак свою проблему я решил (не сам). Чтобы все об этом знали:

оказывается в последних версиях MySQL появилась такая фича, что charset а так же collation можно устанавливать не только глобально для бд, но и для каждой таблицы и даже для каждого столбика таблицы. Если вы делаете дамп старой бд закодированной в utf8 то при аплоаде в новую надо добавить в дамп некоторую инфу. Кому интересно читайте здесь:

http://www.phpfaq.ru/charset
MDD
phpBB 1.2.1
Сообщения: 23
Стаж: 17 лет 3 месяца

Сообщение MDD »

labview писал(а):Итак свою проблему я решил (не сам). Чтобы все об этом знали:
http://www.phpfaq.ru/charset
Хотелось бы уточнить, у весь текст раньше заменялся на "?" или только отдельные символы, как на скрине?
Аватара пользователя
labview
phpBB 1.4.3
Сообщения: 88
Стаж: 17 лет 3 месяца

Сообщение labview »

MDD
Весь текст в постах, но не в заголовках тем. Смотрите скрин выше.
MDD
phpBB 1.2.1
Сообщения: 23
Стаж: 17 лет 3 месяца

Сообщение MDD »

я думаю, это другой случай...

...посмотрел в phpadmin - таблицы имеют кодировку utf8-bin
а внизу, в итогах 62 таблицы в utf8_general_ci

при экспорте таблицы, автоматически добавляются команды CHARSET=utf8 COLLATE=utf8_bin

Если честно, вот этот bin меня и смущает...разве не UTF8_general_ci там должно быть?
Аватара пользователя
labview
phpBB 1.4.3
Сообщения: 88
Стаж: 17 лет 3 месяца

Сообщение labview »

COLLATE отвечает за сортировку, а не за представление данных. Я думаю у вас дело именно в кодировке, а не в сортировке.
MDD
phpBB 1.2.1
Сообщения: 23
Стаж: 17 лет 3 месяца

Сообщение MDD »

labview писал(а):COLLATE отвечает за сортировку, а не за представление данных. Я думаю у вас дело именно в кодировке, а не в сортировке.
эх... теперь не новый дамп, не старый обратно не заливается :(

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