[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 раз

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

Сообщение rxu »

Kat
Покажите вашу информацию о сервере из раздела сведений о PHP в админпанели (или phpinfo();).
Изображение
Аватара пользователя
Kat
phpBB 1.4.0
Сообщения: 30
Стаж: 16 лет 10 месяцев

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

Сообщение Kat »

rxu вот информация о сервере.

На данный момент в utf_tools.php
function utf8_normalize_nfc($strings)
{ return $strings; - это добавила
if (empty($strings))
{
return $strings;
}
- это удалила
Сообщения стали отправляться в нормальном виде, однако так ни кто и не сказал, что за собой повлечет отключение функции utf8_normalize_nfc
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

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

Сообщение rxu »

Каков был оригинальный текст предложения из приведенной выше цитаты? Бьётся один и тот же набор букв алфавита, или каждый раз разный?
Изображение
Аватара пользователя
Kat
phpBB 1.4.0
Сообщения: 30
Стаж: 16 лет 10 месяцев

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

Сообщение Kat »

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

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

Сообщение rxu »

Спасибо за информацию.
Хорошо бы набрать побольше таких примеров (оригиналов с битыми впоследствии сообщениями), дабы постараться выяснить закономерность. Пока ясности очень мало, к сожалению. Хотя о проблеме сообщено разработчикам.
Изображение
Аватара пользователя
Kat
phpBB 1.4.0
Сообщения: 30
Стаж: 16 лет 10 месяцев

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

Сообщение Kat »

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

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

Сообщение rxu »

Kat писал(а):Для сравнения потом здесь выложить или вам в личку отправить?
Выкладывайте здесь.
Изображение
VitAnt
phpBB 1.0.0
Сообщения: 2
Стаж: 16 лет 9 месяцев

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

Сообщение VitAnt »

Приветствую всех!
Только что обновился до третьей версии и столкнулся с проблемой по сабжу вроде как...
Пробежался по теме... но вроде бы не нашёл ответа на мой вопрос...
Дело в том что мой форум ввиду специфики нуждается в иероглифах ...
После конвертации с 2 на 3 версии созданные рание сообщения с использованием иерогфилов перкрасно отображаются...
Глюк был с названиями разделов - там иероглифы превратились в "&#30849" это не беда - не так критично, но попробовав создать пост с использованием иероглифов форум выдал мне следующее

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

Вернуться на главную страницу 
Общая ошибка
SQL ERROR [ mysql4 ]

Incorrect string value: '\xE3\x81\x82\xE3\x81\x82...' for column 'post_text' at row 1 [1366]

SQL

INSERT INTO phpbb_posts (forum_id, poster_id, icon_id, poster_ip, post_time, post_approved, enable_bbcode, enable_smilies, enable_magic_url, enable_sig, post_username, post_subject, post_text, post_checksum, post_attachment, bbcode_bitfield, bbcode_uid, post_postcount, post_edit_locked, topic_id) VALUES (40, 2, 0, '89.163.106.144', 1215233535, 1, 1, 1, 1, 1, '', 'Re: тестовая тема в честь 300-ой версии', 'あああ', '9868f6dca0768cfeab26f34d559f7680', 0, '', '1gextg6m', 1, 0, 669)

BACKTRACE

FILE: includes/db/mysql.php
LINE: 158
CALL: dbal->sql_error()

FILE: includes/functions_posting.php
LINE: 1830
CALL: dbal_mysql->sql_query()

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

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

Сообщение rxu »

Посмотрите кодировку полей и таблиц в базе данных, в частности, post_text в таблице posts.
Изображение
VitAnt
phpBB 1.0.0
Сообщения: 2
Стаж: 16 лет 9 месяцев

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

Сообщение VitAnt »

rxu
благодарю за оперативный ответ!
действительно в этом поле у меня стояла кодировка cp1251_general_ci
поставил utf8_general_ci
теперь пост сохранялся... но выдавалась ошибка...

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

Общая ошибка
SQL ERROR [ mysql4 ]

Illegal mix of collations for operation ' IN ' [1271]

SQL

SELECT word_id, word_text FROM phpbb_search_wordlist WHERE word_text IN ('おおお', 'тестовая', 'тема', 'честь', '300', 'версии')

BACKTRACE

FILE: includes/db/mysql.php
LINE: 158
CALL: dbal->sql_error()

FILE: includes/search/fulltext_native.php
LINE: 1121
CALL: dbal_mysql->sql_query()

FILE: includes/functions_posting.php
LINE: 2344
CALL: fulltext_native->index()

FILE: posting.php
LINE: 1002
CALL: submit_post()
после чего изменил в phpbb_search_wordlist поле word_text тоже на уникод... и всё стало поститься без ошибок...

но осталась последняя проблемка -
при создании поисковых индексов выдаётся ошибка

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

Общая ошибка
SQL ERROR [ mysql4 ]

Column 'post_text' cannot be part of FULLTEXT index [1283]

SQL

ALTER TABLE phpbb_posts ADD FULLTEXT (post_subject), MODIFY post_text mediumtext COLLATE utf8_unicode_ci NOT NULL, ADD FULLTEXT (post_text), ADD FULLTEXT post_content (post_subject, post_text)

BACKTRACE

FILE: includes/db/mysql.php
LINE: 158
CALL: dbal->sql_error()

FILE: includes/search/fulltext_mysql.php
LINE: 738
CALL: dbal_mysql->sql_query()

FILE: includes/acp/acp_search.php
LINE: 343
CALL: fulltext_mysql->create_index()

FILE: includes/acp/acp_search.php
LINE: 46
CALL: acp_search->index()

FILE: includes/functions_module.php
LINE: 471
CALL: acp_search->main()

FILE: adm/index.php
LINE: 74
CALL: p_master->load_active()
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

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

Сообщение rxu »

Возможно, что у вас проблемы с кодировкой содержимого базы. Если она была cp1251, а вы поменяли кодировку для поля на юникод, само содержимое так и осталось в кодировке 1251. Посмотрите прямо в базе, как выглядят тексты сообщений.
Изображение
Аватара пользователя
Merlin
phpBB 1.4.2
Сообщения: 54
Стаж: 20 лет 1 месяц
Откуда: odessa.ua

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

Сообщение Merlin »

rxu
Примеров имею сотни покоцанных сообщений. Основной пик пришелся на середину марта, пока не отрубил нашу любимую функцию.
Вот например в этой теме от этого поста и далее.
http://www.rock.od.ua/viewtopic.php?p=308692#p308692

Готов предоставить любую необходимую информацию.

Добавлено спустя 3 минуты 39 секунд:
Как я уже писал - глюк исчез, когда запустили связку PHP в CGI+nginx.
Но админ не захотел переделывать все htaccess, поэтому вернулись на апач 1.3.41
Поставить для теста на время двойку пока тоже не могу развести )

Добавлено спустя 2 минуты 55 секунд:
Kat писал(а):Сообщения стали отправляться в нормальном виде, однако так ни кто и не сказал, что за собой повлечет отключение функции utf8_normalize_nfc
Уже 4 месяца с отключенной функцией. Из глюков замечено только некорректная обработка вложенных цитат, но не регулярно. Теряется закрывающий тег. Но это лучше, чем нечитаемый пост.
Если спросят: "Куда?", отвечай: "В никуда!",
Это правда, и в этом беда!
Аватара пользователя
Kat
phpBB 1.4.0
Сообщения: 30
Стаж: 16 лет 10 месяцев

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

Сообщение Kat »

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

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

Сообщение rxu »

Kat
До сих пор ошибка не повторяется? Разработчики обратили внимание на проблему... Хорошо бы получить тестовую площадку :)
Изображение
Аватара пользователя
Merlin
phpBB 1.4.2
Сообщения: 54
Стаж: 20 лет 1 месяц
Откуда: odessa.ua

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

Сообщение Merlin »

Площадку могу предоставить. Что конкретно им нужно?
Если спросят: "Куда?", отвечай: "В никуда!",
Это правда, и в этом беда!

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