[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

Если существует проблема, проявляющаяся в
Аватара пользователя
latysh
phpBB 1.0.0
Сообщения: 7
Стаж: 16 лет 7 месяцев

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

Сообщение latysh »

Палыч

Спасибо! Но это же UTF-8 он же должен выводиться, IE6 нормально показывает те буквы на сайте, но на форуме не выводятся...Хотя когда я открываю "исходный код страницы" там буквы выводятся...Может проблема в шрифте? Какой шрифт использует PHPBB3?
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 18 лет 11 месяцев
Откуда: Питер
Благодарил (а): 1 раз
Поблагодарили: 27 раз

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

Сообщение Палыч »

latysh
Посмотрите какую кодировку определяет IE-6
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
latysh
phpBB 1.0.0
Сообщения: 7
Стаж: 16 лет 7 месяцев

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

Сообщение latysh »

Палыч
IE-6 автоматически определят UNICODE(UTF-8)...
Названия форумов нормально высвечиваются, а все остальное(описание, пост и т.д.) нет...
Если это проблема IE-6 то все буквы должны были не показываться...Где я могу шрифт поменять?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

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

Сообщение rxu »

latysh писал(а):Если это проблема IE-6 то все буквы должны были не показываться...
Тогда встречный доп. вопрос: проблема в каком стиле проявляется? И в просилвер, и в сабсилвер2? Или в нестандартных стилях?
Изображение
Аватара пользователя
latysh
phpBB 1.0.0
Сообщения: 7
Стаж: 16 лет 7 месяцев

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

Сообщение latysh »

rxu
Тогда встречный доп. вопрос: проблема в каком стиле проявляется? И в просилвер, и в сабсилвер2? Или в нестандартных стилях?
Я проверил на них, когда я ставлю просилвер, там уже буквы в названиях форумов не показываются, но показываются там где темы, сообщения и последнее сообщение...

А в сабсилвер2 точно также показывает как и установленный мною нестандартный стиль...

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

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

Сообщение rxu »

latysh
В любом случае, браузер использует те шрифты, что установлены на вашем конкретном компьютере. Заданные шрифты смотрите в файлах css (ищите свойства font-family для классов) в соответствующих стилях.
Изображение
Аватара пользователя
latysh
phpBB 1.0.0
Сообщения: 7
Стаж: 16 лет 7 месяцев

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

Сообщение latysh »

rxu
Палыч

Спасибо вам большое! Я постараюсь, изменить css...
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 18 лет 11 месяцев
Откуда: Питер
Благодарил (а): 1 раз
Поблагодарили: 27 раз

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

Сообщение Палыч »

latysh
Вообщем, по-моему, бессмысленно.
Все браузеры используют одни и те же шрифты - те, которые доступны им из операционной системы вашего компьютера.
Задаётся семейство (список) шрифтов, которое будет использоваться для оформления текста содержимого, в font-family. Когда браузер встречает первый шрифт в списке, он проверяет его наличие на компьютере пользователя. Если такого шрифта нет, берется следующее имя из списка и также анализируется на присутствие. И так далее. Если не один шриф не найден, используется шрифт по умолчанию, как правило, Times New Roman. Поэтому, если в остальных браузерах всё отражается корректно, то дело явно не в шрифте.
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Аватара пользователя
latysh
phpBB 1.0.0
Сообщения: 7
Стаж: 16 лет 7 месяцев

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

Сообщение latysh »

Палыч

Да, так полюбому не получается...Я один форум знаю Vbulleten там эти буквы отображаются, но кодировка там автоматически выбирается Кирилица(windows), может у меня тоже так получится?

Добавлено спустя 8 минут 3 секунды:
Палыч писал(а):latysh
Если такого шрифта нет, берется следующее имя из списка и также анализируется на присутствие. И так далее.

Я просто подумал, что IE находит первый шрифт и этот шрифт не поддерживает кыргызские буквы...
bfhp
phpBB 1.0.0
Сообщения: 1
Стаж: 16 лет 7 месяцев

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

Сообщение bfhp »

после правки utf_normalize_nfc все равно иногда появлялся "мусор" при цитировании сообщения.
полез копаться к коде и, кажется, нашел что нужно править.
например message_parser.php в нескольких местах содержит безобразие не совместимое с юникодом

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

$tok = $in[$pos];
его можно заменить и "мусор" исчезнет.

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

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

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

Сообщение rxu »

bfhp писал(а):например message_parser.php в нескольких местах содержит безобразие не совместимое с юникодом
А можно поподробнее, на научной основе? Спасибо.

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

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

Сообщение rxu »

bfhp
Система - FreeBSD 6.3-RELEASE-p1 :?:
Изображение
le_
phpBB 1.0.0
Сообщения: 4
Стаж: 16 лет 6 месяцев

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

Сообщение le_ »

Жаль, что разработчики не предусмотрели использование отличных от UTF-8 кодировок...Изображение
Только из-за кодировки не перехожу на bb3
База у меня на mssql 2005, а он вообще не считает UTF-8 корректной кодировкой (http://support.microsoft.com/kb/232580)
Прямой запрос в базу (select) возвращает набор нечитаемых символов.
Кроме того, неудобно, когда весь основной сайт в win-1251, а форум в UTF-8. Для использования таких модов, как Last Posts/Topics, например, придется перекодировать выбранные из БД данные специальным перекодировщиком, для отображения на главной странице основного сайта...
А весь сайт переводить на UTF-8 - тоже не хочется. Спец. редакторы, кодировщики и т.п...

Пробовал менять 'S_CONTENT_ENCODING' => 'UTF-8' в includes/functions.php на 'S_CONTENT_ENCODING' => 'windows-1251', и при попытке отправить новое сообщение со страницы форума в кодировке win-1251 получил такое сообщение:

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

[phpBB Debug] PHP Notice: in file /includes/functions.php on line 35: htmlspecialchars() [function.htmlspecialchars]: Invalid multibyte sequence in argument.
Может, все-таки будет в дальнейшем поддержка других кодировок, никто не знает?
Аватара пользователя
Alek$
Former team member
Сообщения: 2616
Стаж: 19 лет 8 месяцев
Откуда: Новосибирск
Поблагодарили: 3 раза

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

Сообщение Alek$ »

le_
другие кодировки поддерживаться не будут. UTF-8 постепенно становится стандартом и все переходят на него.
Единственное, что могу посоветовать по поводу базы - перейти на mysql.
Самая страшная ошибка, это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
Первая помощь по всем phpBB-вопросам: phpBB2 и phpBB3 FAQ; Правила общения;
Все консультации в icq или личке - на платной основе.
Аватара пользователя
Rayden
Former team member
Сообщения: 3739
Стаж: 19 лет 10 месяцев
Поблагодарили: 3 раза

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

Сообщение Rayden »

le_ писал(а):Жаль, что разработчики не предусмотрели использование отличных от UTF-8 кодировок...
le_ писал(а):Может, все-таки будет в дальнейшем поддержка других кодировок, никто не знает?
Послушай, наконец-то создана единая кодировка, призванная покончить с бардаком несовмесимых кодировок.
Ты хоть думай немного, кому нужно будет делать под другие, если есть универсальная?
А твоя проблема как раз обусловлена наличием старых кодировок.
phpBB2 FAQ
phpBB3 FAQ

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