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

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

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
volset
phpBB 1.0.0
Сообщения: 8
Стаж: 16 лет 6 месяцев
Поблагодарили: 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

Если существует проблема, проявляющаяся в
Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2208
Стаж: 16 лет 3 месяца
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 338 раз
Контактная информация:

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

Сообщение nissin »

У masterhost дампы в кодировке windows-1251. Поэтому нужно в начале дампа строчку

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

/*!40101 SET NAMES utf8 */;
заменить на

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

/*!40101 SET NAMES cp1251 */;
После этого пройтись STK и восстановить очищенные имена.
Всё повторяется. nurlan.info
spoler
phpBB 1.2.0
Сообщения: 16
Стаж: 15 лет 7 месяцев
Благодарил (а): 12 раз
Поблагодарили: 1 раз

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

Сообщение spoler »

Nekstati писал(а):Попробуйте восстановить БД из того же архива этим или этим инструментом.
Попробывал mysqldumper и после этого у меня начались проблемы на форуме, которые описаны в теме "Как убить Трояна". Не знаю связано ли это или просто совпадение :) Запросил откат FTP у хостера, жду.

nissin,в дампе в DROP'е для каждой таблицы есть в начале и в конце вот такие фразы:
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;


Вы имеете в виду их заменить?

вот пример:

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

DROP TABLE IF EXISTS `phpbb_icons`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `phpbb_icons` (
  `icons_id` mediumint(8) unsigned NOT NULL auto_increment,
  `icons_url` varchar(255) collate utf8_bin NOT NULL default '',
  `icons_width` tinyint(4) NOT NULL default '0',
  `icons_height` tinyint(4) NOT NULL default '0',
  `icons_order` mediumint(8) unsigned NOT NULL default '0',
  `display_on_posting` tinyint(1) unsigned NOT NULL default '1',
  PRIMARY KEY  (`icons_id`),
  KEY `display_on_posting` (`display_on_posting`)
) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
/*!40101 SET character_set_client = @saved_cs_client */;
а начало дампа выглядит так:

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

-- ------------------------------------------------------
-- Server version	5.0.90-log
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
потом идут дропы и т.д.

Добавлено спустя 1 минуту 12 секунд:
P.S. в вопросе про замену я имел в виду строчку /*!40101 SET character_set_client = utf8 */;
Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2208
Стаж: 16 лет 3 месяца
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 338 раз
Контактная информация:

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

Сообщение nissin »

Наверно в их версии mysqldump теперь так сделано.
А сам дамп в какой кодировке, не проверяли? Если в cp1251 то попробовать заменить на:

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

/*!40101 SET character_set_client = cp1251 */;
PS: в прошлом сообщении по ошибке написал кодировку windows-1251.
Всё повторяется. nurlan.info
spoler
phpBB 1.2.0
Сообщения: 16
Стаж: 15 лет 7 месяцев
Благодарил (а): 12 раз
Поблагодарили: 1 раз

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

Сообщение spoler »

ну сам дамп судя по всему utf-8,

т.к. в каждом блоке лампа таблиц есть

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

DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
поправьте если я не прав
spoler
phpBB 1.2.0
Сообщения: 16
Стаж: 15 лет 7 месяцев
Благодарил (а): 12 раз
Поблагодарили: 1 раз

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

Сообщение spoler »

nissin писал(а):Наверно в их версии mysqldump теперь так сделано.
А сам дамп в какой кодировке, не проверяли? Если в cp1251 то попробовать заменить на:

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

/*!40101 SET character_set_client = cp1251 */;
PS: в прошлом сообщении по ошибке написал кодировку windows-1251.
не помогло(
Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2208
Стаж: 16 лет 3 месяца
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 338 раз
Контактная информация:

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

Сообщение nissin »

Так в какой кодировке у вас дамп?
Всё повторяется. nurlan.info
spoler
phpBB 1.2.0
Сообщения: 16
Стаж: 15 лет 7 месяцев
Благодарил (а): 12 раз
Поблагодарили: 1 раз

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

Сообщение spoler »

Лебедевский кодировщик сказал что CP1251.

Видимо придется конвертить.

Добавлено спустя 28 минут 23 секунды:
изначально в базах текст был такой:
Выпуск-1976. Р’ ЮБР?ЛЕЙНЫЙ РіРѕРґ Р

попробовал конвертнуть вот так:

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

ALTER TABLE `phpbb_topics` CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin
стало вот так:

d0a0e28099d0a1e280b9d0a0d197d0a1d193d0a1d083d0a0d1942d313937362e2020d0a0e2809920d0a0c2ae

как-то не удалось.
Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2208
Стаж: 16 лет 3 месяца
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 338 раз
Контактная информация:

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

Сообщение nissin »

А если хостера напрячь, который такие кривые дампы делает.
Всё повторяется. nurlan.info
spoler
phpBB 1.2.0
Сообщения: 16
Стаж: 15 лет 7 месяцев
Благодарил (а): 12 раз
Поблагодарили: 1 раз

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

Сообщение spoler »

напряг, но диалог с мастерхостом обычно растягивается на сутки

Добавлено спустя 56 минут:
Итак, подводим итоги.

Мастерхост неожиданно быстро среагировал и сказал дописать /*!40101 SET NAMES utf8 */; в дампе, после

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

/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,
FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
Хотя в мане y них на сайте написано заменить /*!40101 SET NAMES cp1251 */ на /*!40101 SET NAMES utf8 */. Это сначало меня и смутило. Я дописал как сказали, раздампил базу и все заработало, тексты все как нужно, с входами русских ников проблем нет, но теперь в базе они храняться в виде "d0a0e28099d0a1e280b9d0a0d197d0a1d19". В админке русские ники также без проблем находятся.

Всем спасибо за поддержку, у всех бы такой саппорт был =)

Добавлено спустя 3 минуты 21 секунду:
PS про саппорт это я имел ввиду форум phpbbguru )
UHO-UH
phpBB 1.2.1
Сообщения: 20
Стаж: 14 лет 6 месяцев
Откуда: р.Коми г.Ухта
Благодарил (а): 5 раз
Контактная информация:

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

Сообщение UHO-UH »

я плохо понимаю,поэтому вот скрин того что в файле htaccess
8998888888.jpg
но знаки вопроса в ромбиках,иногда появляются,(только после отправок сообщений) в самом посте и иногда в названии темы
мне бы конкретно готовый код который можно ставить,а то после эксперементов,форум не работает,

Добавлено спустя 4 минуты:
что то мелко получилось(извиняюсь за большие буквы)

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

#
# Uncomment the statement below if you want to make use of
# HTTP authentication and it does not already work.
# This could be required if you are for example using PHP via Apache CGI.
#
#<IfModule mod_rewrite.c>
#RewriteEngine on
#RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#</IfModule>
 
<Files "config.php">
Order Allow,Deny
Deny from All
</Files>
 
<Files "common.php">
Order Allow,Deny
Deny from All
</Files>
 
AddDefaultCharset utf-8
php_value mbstring.func_overload 0
 
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

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

Сообщение rxu »

UHO-UH писал(а):php_value mbstring.func_overload 0
Уверены, что данная настройка срабатывает? В php.ini есть возможность поменять?
Изображение
UHO-UH
phpBB 1.2.1
Сообщения: 20
Стаж: 14 лет 6 месяцев
Откуда: р.Коми г.Ухта
Благодарил (а): 5 раз
Контактная информация:

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

Сообщение UHO-UH »

rxu
к php.ini доступа нет
UHO-UH
phpBB 1.2.1
Сообщения: 20
Стаж: 14 лет 6 месяцев
Откуда: р.Коми г.Ухта
Благодарил (а): 5 раз
Контактная информация:

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

Сообщение UHO-UH »

перепробовал почти всё что написано в первом сообщении,эти действия наоборот вызывали вом знак сразу в первом же сообщении
в итоге удалил эти строчки и оставил только это

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

#
# Uncomment the statement below if you want to make use of
# HTTP authentication and it does not already work.
# This could be required if you are for example using PHP via Apache CGI.
#
#<IfModule mod_rewrite.c>
#RewriteEngine on
#RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#</IfModule>

<Files "config.php">
Order Allow,Deny
Deny from All
</Files>

<Files "common.php">
Order Allow,Deny
Deny from All
</Files>

форум работает,за результатом слежу,если будет положительный то отпишусь
UHO-UH
phpBB 1.2.1
Сообщения: 20
Стаж: 14 лет 6 месяцев
Откуда: р.Коми г.Ухта
Благодарил (а): 5 раз
Контактная информация:

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

Сообщение UHO-UH »

нет опять появился вом знак
Аватара пользователя
nissin
phpBB 3.0.4
Сообщения: 2208
Стаж: 16 лет 3 месяца
Откуда: Павлодар
Благодарил (а): 7 раз
Поблагодарили: 338 раз
Контактная информация:

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

Сообщение nissin »

Попробуйте залить в корень форума и запустить скрипт из вложения.
Если в конце вывода иногда появляется quote, трясите хостера, пусть разбирается почему у него mbstring периодически перегружает строковые функции.
Вложения
hoster3.zip
(450 байт) 252 скачивания
Всё повторяется. nurlan.info
Закрыто

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