Уважаемые пользователи!
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 лет 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

Если существует проблема, проявляющаяся в
testik777
phpBB 1.2.0
Сообщения: 11
Стаж: 13 лет 1 месяц

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

Сообщение testik777 »

Зачем второй раз это запускать?
Ну первый раз скрипт выполнился не для той версии phpbb, которая у меня стояла. После обновления до самой новой версии, я решил еще на всякий случай для актуальной версии его запустить.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16367
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1744 раза

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

Сообщение rxu »

Этот скрипт только один раз надо запускать.
Изображение
testik777
phpBB 1.2.0
Сообщения: 11
Стаж: 13 лет 1 месяц

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

Сообщение testik777 »

Этот скрипт только один раз надо запускать.
Со скриптом я понял, хотя даже его после выполнения, при обновлении пишется, что тип базы данных mssql4 (например http://www.phpbbguru.net/community/down ... &mode=view) даже если ошибок нет.
Но скрипт меня мало волнует, я его выполнял, потому что я не мог категории добалять новый на сайт. Главное с кодировкой разобраться!!!

Добавлено спустя 32 минуты 21 секунду:
Да забыл добавить, что в кривой кодировке отображаются только русские буквы. Английские слова внутри текста нормально отображаются.

Добавлено спустя 14 минут 27 секунд:
Я так понимаю одна из закосяченных таблиц phpbb3_posts. На рисунке я привел ее структуру (справа) и обзор поля post_subject (слева), в нем видно, что кодировка кривая.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

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

Сообщение Sheer »

testik777 писал(а):я решил еще на всякий случай для актуальной версии его запустить.
И получил двойную перекодировку в utf-8 - результат на лице: содержимое таблиц запорото.
Тяжелый случай. Смотри что получается если запустить такой скрипт:

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

<?
header('Content-Type: text/html; charset=UTF-8');
$simb = 'ля Ð¿Ð»Ð°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð½Ð¾Ñ€Ð¼Ð°Ñ‚ивов Ð´ÐµÑÑ‚ельности Ð¿Ð¾ Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸ÑŽ ÑÑ‚их Ð¿Ñ€Ð¾Ð´ÑƒÐºÑ‚о';
print "$simb<hr />";
$new = iconv("UTF-8", "CP1252//IGNORE", "ля Ð¿Ð»Ð°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð½Ð¾Ñ€Ð¼Ð°Ñ‚ивов Ð´ÐµÑÑ‚ельности Ð¿Ð¾ Ð¿Ñ€Ð¾Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸ÑŽ ÑÑ‚их Ð¿Ñ€Ð¾Ð´ÑƒÐºÑ‚о");

print "$new<br />";
?>
л� планировани� и определени� нормативов де�тельно�ти по продвижению �тих продукто
Как видно, часть символов перекодировать не удается, придется ручками восстанавливать.
testik777
phpBB 1.2.0
Сообщения: 11
Стаж: 13 лет 1 месяц

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

Сообщение testik777 »

Как видно, часть символов перекодировать не удается, придется ручками восстанавливать.
Результат вполне устраивает. А как сделать обратную перекодировку, чтобы сразу для всего содержимого таблиц. Судя по скрипту это php скрипт. С помощью его запустить?
Заранее благодарен за ответ.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

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

Сообщение Sheer »

Снимать дамп, перекодировать, записывать в новый файл, и из него восстанавливать.

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

<?php
header('Content-Type: text/html; charset=UTF-8');

$fp = fopen('hell.sql','rb');
$fp2 = fopen('out.sql','wb');
while( $line = fread( $fp, 4096) )
  fwrite( $fp2, iconv('utf-8', 'windows-1252//ignore', $line) );
fclose($fp);
fclose($fp2);
?>
Как-то так...
testik777
phpBB 1.2.0
Сообщения: 11
Стаж: 13 лет 1 месяц

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

Сообщение testik777 »

Фух еле разобрался с дампом и php-ным скриптом, ниразу до этого ничего подобного не делал.
Спасибо за скрипт. Но результат какой-то совсем плачевный. Он перекодирует лишь часть одного предложения:
было "Разработка и обсуждение конкурентоспособной формы КП."
стало "Разработка и об".
Остальное он просто удаляет. А там возможно несколько предложений было.
Мож какие нибудь перекодировщики есть куда можно дамп базы загнать, чтобы он содержание полей полностью перекодил, а не только первое слово?

Добавлено спустя 1 час 3 секунды:
А нельзя кодировку поменять sql-запросом, его хоть, через phpmyadmin можно напрямую использовать? C php скриптом не удобно работать.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

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

Сообщение Sheer »

1. Погугли iconv. Существует какое ПО, при помощи которого можно конвертировать.
2. Выложи где-где-нибудь дамп таблицы _posts (строчек 10-20), я поковыряюсь.
testik777
phpBB 1.2.0
Сообщения: 11
Стаж: 13 лет 1 месяц

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

Сообщение testik777 »

сорри что так долго не отвечал.
Выложи где-где-нибудь дамп таблицы _posts (строчек 10-20), я поковыряюсь.
Я выложил несколько строчек таблицы posts
Пароль к архиву я тебе выслал в личку.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

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

Сообщение Sheer »

testik777 писал(а):результат какой-то совсем плачевный
Потому что, создавая дамп в phpMyAdmin, нужно было снять галочку напротив Использовать шестнадцатеричное отображение для полей типа BLOB
testik777
phpBB 1.2.0
Сообщения: 11
Стаж: 13 лет 1 месяц

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

Сообщение testik777 »

выслал без галочки дамп.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

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

Сообщение Sheer »

Ну дык... другое дело, все работает...

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

INSERT INTO `phpbb3_posts` VALUES (193, 102, 37, 10, 0, '2xx.1x.3.2xx', 1227010274, 1, 0, 1, 1, 1, 0, '', '', 'Прошивку завтра вышлем. ѐ¾ помоему она одна. ѐ¾ длϠеё заливки потребуетґ программатор. Еще момент, проблема ⥵гда вґ‚речаетґ на ґ‹рном упаковщике. У ваϠпроблемы Ϡґ‹рным?', '', 0, 'QA==', '3qeilsok', 1, 0, '', 10, 0, 0);
testik777
phpBB 1.2.0
Сообщения: 11
Стаж: 13 лет 1 месяц

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

Сообщение testik777 »

Т.е. нужно на этот дамп скрипт натравил
Sheer писал(а):<?php
header('Content-Type: text/html; charset=UTF-8');

$fp = fopen('hell.sql','rb');
$fp2 = fopen('out.sql','wb');
while( $line = fread( $fp, 4096) )
  fwrite( $fp2, iconv('utf-8', 'windows-1252//ignore', $line) );
fclose($fp);
fclose($fp2);
?>
И все поностью декодировалось? Посты не урезались? Просто я перед отправкой последнего дампа, пробовал вновь на него скрипт натравить и сразу увидел, что файл на выходе более чем на треть меньше стал.
spoler
phpBB 1.2.0
Сообщения: 16
Стаж: 15 лет 8 месяцев
Благодарил (а): 12 раз
Поблагодарили: 1 раз

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

Сообщение spoler »

Здравствуйте.

Произведенные изменения, после которых начались неполадки: откат mysql базы на день назад и восстановление через ssh.
Версия phpBB: 3.0.8
Используемые шаблоны: subsilver2
Используемые моды: благодарности за сообщения
Версия PHP: 5.2.12
Используемая СУБД и её версия: MySQL 5.0.24

Один админ на форуме удалил случайно тему, я попытался восстановить mysql-базу через хостера, он мне залил бэкап за вчерашний день в .gz на ftp, далее я через ssh распаковал ее и восстановил командой "mysql -u uXXXXX -p -h uXXXXX.mysql.masterhost.ru uXXXXX_phpbb3 < uXXXXX_phpbb3". После этого в базе все русские ники отображаются в коде в виде "d0a0c2aed0a0c2bbda0...", все темы в кракозябрах. По поиску лазил, делал reclean usrers через STK - не помогло.

Подскажите куда копать, пожалуйста.

Никаких изменений с форумом не производилось.
Изображение

Изображение

Добавлено спустя 5 минут 18 секунд:
кнопку правки сообщений не увидел, плюсую еще один скрин:

так выглядят в базе русские ники
Изображение
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3336
Стаж: 15 лет 1 месяц
Благодарил (а): 25 раз
Поблагодарили: 590 раз

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

Сообщение Nekstati »

Попробуйте восстановить БД из того же архива этим или этим инструментом.

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