[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 »

ыйо
Эти сообщения с ббкодом, без или и те и другие попадаются?
Изображение
ыйо
phpBB 1.2.0
Сообщения: 11
Стаж: 17 лет 1 месяц

Сообщение ыйо »

Через раз. Но вроде без кодов.

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

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

Сообщение rxu »

Версия PHP, Apache (в т.ч. русский или стандартный), локаль, что-то еще, возможно?
Изображение
ыйо
phpBB 1.2.0
Сообщения: 11
Стаж: 17 лет 1 месяц

Сообщение ыйо »

Собственно, сейчас вывернулся последним предложенным средством - заменой функции утф_нормалайз на заглушку, но вообще, я скажу, это не совсем хорошее решение. Насколько помнится мне, если попытаться поместить в текстовую ячейку сопоставления utf8_... строку в не-юникод кодировке, mySQL вообще зависает намертво.

Добавлено спустя 2 минуты 51 секунду:

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

Сообщение rxu »

Давайте попробуем следующее.
Открываете includes/utf_normalizer.php
Находите функцию function nfc(&$str), в ней находите код

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

$len = strlen($str);
и заменяете его на код

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

$len = utf8_strlen($str);
Последний раз редактировалось rxu 16.03.2008 17:21, всего редактировалось 1 раз.
Изображение
ыйо
phpBB 1.2.0
Сообщения: 11
Стаж: 17 лет 1 месяц

Сообщение ыйо »

Есть ещё непроверенное подозрение - может ява-скрипт на клиентской стороне так обрабатывает тело сообщения, что стройность юникод-символов каким-то образом нарушается, и как следствие запускается принудительная нормализация на сервере входящих текстовых данных?

Добавлено спустя 57 секунд:
и заменяете его на код
Сейчас попробую.
ыйо
phpBB 1.2.0
Сообщения: 11
Стаж: 17 лет 1 месяц

Сообщение ыйо »

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

Сообщение rxu »

Символы, с которыми возникают проблемы, т.е. которые заменяются на знаки вопросов. Они всегда разные или всегда одни и теже, в разных сообщениях?
Просьба отследить это и сообщить.
Изображение
ыйо
phpBB 1.2.0
Сообщения: 11
Стаж: 17 лет 1 месяц

Сообщение ыйо »

Сейчас мне объяснили в техподдержке, что в моём случае работает следующая запись:

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

AddDefaultCharset UTF-8
Вариант, указанный в начале топика - для другого апача.

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

Сообщение rxu »

ыйо писал(а):Вариант, указанный в начале топика - для другого апача.
А какой апач в вашем случае?
Изображение
ыйо
phpBB 1.2.0
Сообщения: 11
Стаж: 17 лет 1 месяц

Сообщение ыйо »

rxu, второй апач.
Развёрнутая информация здесь: http://c2test.ht-test.ru/
phpbb3vsipb
phpBB 1.0.0
Сообщения: 4
Стаж: 17 лет 1 месяц

Сообщение phpbb3vsipb »

Здравствуйте. Подскажите пожалуйста - ведь со всем разобрался на localhost Denwer, а при переносе дампа на сервер отображались символы в другой кодировке.
Я это понял - поставил в .htaccess необходимые строчки
CharsetDisable On
CharsetDefault UTF-8
CharsetSourceEnc UTF-8
и сразу же всё заработало, НО! Названия созданных форумов не были отображены - будто всё осталось точно таким же как и в localhost, но без символов.

Ладно, промучился, переделал прямо на сервере все эти темы - видимо при импорте как-то потеряться могли в связи с этой свистопляской с кодировкой UTF-8, но потом, когда уже начал тестировать обращение пользователя к форуму - конкретно - регистрацию - мне это вылезло боком - в виде пустой строчки при выборе языка форума (предлагалось два варианта - British English и просто пустое поле).

В чем жесть? Как мне поставить форум? Как мне импортировать уже настроенный нормальный поставленный форум :?:?:

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

и главное - как потом быть - при отладке - если качать его обратно на denwer - а потом обратно - ведь опять же такая ошибка возникнет
???


что делать?
Аватара пользователя
Rayden
Former team member
Сообщения: 3739
Стаж: 19 лет 10 месяцев
Поблагодарили: 3 раза

Сообщение Rayden »

phpbb3vsipb
не смешивать две проблемы в одну.
Увтанови сервере нормально форум, чтоб все было правильно с кодировками.
А только потом заморачивайся переносом базы. Но это в другой теме.
phpBB2 FAQ
phpBB3 FAQ
phpbb3vsipb
phpBB 1.0.0
Сообщения: 4
Стаж: 17 лет 1 месяц

Сообщение phpbb3vsipb »

да суть в том чтобы форум корректно работал.
я проделал такие действия:

1. установил форум на localhost Denwer
2. скопировал файлы прописал config
3. экспортировал с локала в сервер базу
4. прописал в штакссесе три строчки

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

что. это. такое ???


как бороться с лажей от phpbb?
Аватара пользователя
Rayden
Former team member
Сообщения: 3739
Стаж: 19 лет 10 месяцев
Поблагодарили: 3 раза

Сообщение Rayden »

Отвечаю - это не лажа, это ты изо всех сил пытаешься выглядеть тупым и глухим.

СНАЧАЛА установи на сервере пустой форум, протестируй на корректность, попробуй создавать темы.категории.сообщения и т д , а только ПОТОМ экспортируй в него базу с денвера.

Доступно или по пунктам расписать?
phpBB2 FAQ
phpBB3 FAQ

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