[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

Если существует проблема, проявляющаяся в
khaxel
phpBB 1.0.0
Сообщения: 7
Стаж: 17 лет 1 месяц

Сообщение khaxel »

Rayden писал(а):Многие хостинги, особенно старые, принудительно ставят так называемый "русский апач", который осуществляет принудительную перекодировку в кои8 или вин1251.
Естественно, что новейшие скрипты, работающие с ютф такого безобразия не понимают, поэтому у нас должна быть возможность через htaccess управлять перекодировкой или отключать ее совсем.
Но если дело только в перекодировке, то ведь должна же быть закономерность! А ее нет! Я сабмичу один и тот же текст, а результат не предсказуем и текст херится не целиком, а как-то избирательно, то сначала, то в середине, то в конце.
Самое хреновое тут то, что невозможно точно сказать чья это вина - апача или phpBB.
Аватара пользователя
Rayden
Former team member
Сообщения: 3739
Стаж: 19 лет 10 месяцев
Поблагодарили: 3 раза

Сообщение Rayden »

Апача конечно. И связки php+mysql
phpBB не умеет перекодировать, в нем это не заложено.
phpBB2 FAQ
phpBB3 FAQ
khaxel
phpBB 1.0.0
Сообщения: 7
Стаж: 17 лет 1 месяц

Сообщение khaxel »

Rayden писал(а):Апача конечно. И связки php+mysql
phpBB не умеет перекодировать, в нем это не заложено.
Тогда как объяснить тот ФАКТ что при вырубании функции utf8_normalize_nfc

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

function utf8_normalize_nfc($strings)
{   return $strings;
эффект пропадает?
Получается что именно phpBB занимается какой-то перекодировкой !?
Аватара пользователя
Rayden
Former team member
Сообщения: 3739
Стаж: 19 лет 10 месяцев
Поблагодарили: 3 раза

Сообщение Rayden »

Unicode Normalization
If you retrieve user input with multibyte characters you should additionally normalize the string using utf8_normalize_nfc() before you work with it. This is necessary to make sure that equal characters can only occur in one particular binary representation. For example the character Å can be represented either as U+00C5 (LATIN CAPITAL LETTER A WITH RING ABOVE) or as U+212B (ANGSTROM SIGN).

Тебе объяснение нужно? Ну например форум пытается проверить то, что ты ему подсовываешь на соответствие ютф и по возможности исправить несоответствие, но давится тем что ты ему подсовываешь.
phpBB2 FAQ
phpBB3 FAQ
khaxel
phpBB 1.0.0
Сообщения: 7
Стаж: 17 лет 1 месяц

Сообщение khaxel »

Стоит заметить, что при этом все (и апач, и php, и mysql, и я :) ) довольны тем что я ему подсовываю, кроме его функции!
И именно phpBB портит всех устраивающую инфу!
Неправда ли?
Аватара пользователя
Rayden
Former team member
Сообщения: 3739
Стаж: 19 лет 10 месяцев
Поблагодарили: 3 раза

Сообщение Rayden »

Ну ты еще обидься на него или на дуэль вызови.

У меня был один чудак на форуме, он после переезда на олимпус заявлял следующее: если на старом форуме у него все работало, то значит у него все ок, а на новом у него проблемы с куками, значит виноват форум. И все мои заявления, что проблемы только у него одного, а у всех остальных нормально, и что вообще опера восьмая это не комильфо до него не доходили. Он обиженный так и ушел, заявляя, что не вернется пока я старый форум не верну.
Вот ты сейчас мне его напоминаешь.

Апач насколько я понимаю вообще тупо вываливает на экран все то, что ему подсовывают и ему пофиг на кодировки - тебе выводимый текст читать, а не ему.
Еще раз говорю - у тебя htaccess не позволяет менять кодироку - это плохо! Если бы хотя бы апач был собран с ютф по умолчанию, это было бы не актуально, а раз он у тебя выплевывает то так то так, это хреново.
Поэтому AD и сказал тебе про смену хостинга. И я не вижу смысла продолжать дальше тебя убеждать. Настрой апач правильно и будет тебе счастье.
phpBB2 FAQ
phpBB3 FAQ
khaxel
phpBB 1.0.0
Сообщения: 7
Стаж: 17 лет 1 месяц

Сообщение khaxel »

Rayden писал(а):Ну ты еще обидься на него или на дуэль вызови.
У меня был один чудак на форуме, он после переезда на олимпус заявлял следующее: если на старом форуме у него все работало, то значит у него все ок, а на новом у него проблемы с куками, значит виноват форум. И все мои заявления, что проблемы только у него одного, а у всех остальных нормально, и что вообще опера восьмая это не комильфо до него не доходили. Он обиженный так и ушел, заявляя, что не вернется пока я старый форум не верну.
Вот ты сейчас мне его напоминаешь.
Примерно за такое лирическое отступление ты мне предупреждение на днях впаял :))
Вообще-то я все эти разговоры веду не для того что бы на кого-то обижаться или кому-то доказывать, что phpBB не совершенен в условиях отечественного хостингово "бездорожья", а лишь для того чтобы решить проблему и получить работоспособный форум у себя на сайте.
Rayden писал(а): Апач насколько я понимаю вообще тупо вываливает на экран все то, что ему подсовывают и ему пофиг на кодировки - тебе выводимый текст читать, а не ему.
Вот вот, только апач вываливает похеренный текст после того как с текстом phpBB поколдует.
Rayden писал(а):Еще раз говорю - у тебя htaccess не позволяет менять кодироку - это плохо! Если бы хотя бы апач был собран с ютф по умолчанию, это было бы не актуально, а раз он у тебя выплевывает то так то так, это хреново.
Поэтому AD и сказал тебе про смену хостинга. И я не вижу смысла продолжать дальше тебя убеждать. Настрой апач правильно и будет тебе счастье.
На этот счет я веду активные переговоры с хостером, но сам понимаешь как просто заставить их переконфигурировать апач.

Да, еще было бы интересно услышать кто на каких хостингах столкнулся с подобной проблемой, на тот случай если дело дойдет до переезда. У меня все это происходит на ht-systems. И у RWinner на сколько я понимаю там же.
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 18 лет 11 месяцев
Откуда: Питер
Благодарил (а): 1 раз
Поблагодарили: 27 раз

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

Господа, это всё здорово, но тема, всё-таки, FAQ, и ваши дебаты тут "не в тему"
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Cefero
phpBB 1.2.0
Сообщения: 10
Стаж: 17 лет 3 месяца

Сообщение Cefero »

хм, думаю мне сюда.
В общем вопросец такой имееться форум 3.0 Олимпус, и есть страничка которая выводить инфу из одного топика.
В общем проблема в следующем. На этой страничке пишуться вопросики за место тектста который должен браться с БД форума, хотя на форуме всё впорядке и прекрасно отображаеться.
В чем я не прав?
Аватара пользователя
crash
Former team member
Сообщения: 6517
Стаж: 20 лет 9 месяцев
Откуда: Бердск

Сообщение crash »

Cefero писал(а):В чем я не прав?
кодировка странички?
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Cefero
phpBB 1.2.0
Сообщения: 10
Стаж: 17 лет 3 месяца

Сообщение Cefero »

crash
crash писал(а):кодировка странички?
Пробовал ставить windows-1251 и utf-8 но всё остаеться без изменений :(

MySQL-кодировка: UTF-8 Unicode (utf8)

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

Сообщение rxu »

Cefero
Дайте ссылку на эту страницу.
Изображение
Cefero
phpBB 1.2.0
Сообщения: 10
Стаж: 17 лет 3 месяца

Сообщение Cefero »

rxu
http://sevensky.1gb.in/tmp.php

собсно код

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Седьмое небо</title>
<link href="css/styles.css" rel="stylesheet" type="text/css" />
</head>

<body>
<? 
include ("./phpBB3/config.php");
if(!mysql_connect("", $dbuser, $dbpasswd))
		{
			echo "Ошибка подключения к базе данных";
			exit;
		}
		
@mysql_select_db($dbname);
 
		$r=mysql_query("select * from phpbb_posts where topic_id = 2 ORDER BY post_time DESC");
		
		for ($i=0; $i<mysql_num_rows($r); $i++)
		{
			$f=mysql_fetch_array($r);
			echo"<table border=0 width=96%>";
			echo"<tr>";
			echo"<td align=left class=style2>$f[post_text]</td>";
			echo"</tr>";
			echo"<tr>";
			echo"<td align=right class=style3> Добавленно ".date( 'd.m.y', $f['post_time'])."</td>";
			echo"</tr>";
			echo"</table><hr align=center width=98% />";
		}
		mysql_close();
	echo"<a href=phpBB3/index.php>ФОРУМ</a>";
?>
</body>
</html>
Добавлено спустя 5 минут 12 секунд:

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

Сообщение rxu »

Ясно Ваш вопрос не по теме. Думаю, тут нужный вам случай http://phpbbguru.net/community/viewtopic.php?t=19417
Изображение
ыйо
phpBB 1.2.0
Сообщения: 11
Стаж: 17 лет 1 месяц

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

Хочу добавить от себя, раз уж здесь пошёл спор в выявлении плоскости проблемы, что mySQL здесь абсолютно не причём по той простой причине, что при нажатии кнопки "предварительный просмотр" через раз лезет известная беда. Какой здесь mySQL, если сообщение ещё не дошло до базы?

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