[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

Если существует проблема, проявляющаяся в
Аватара пользователя
Rayden
Former team member
Сообщения: 3739
Стаж: 19 лет 10 месяцев
Поблагодарили: 3 раза

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

Сообщение Rayden »

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

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

Сообщение rxu »

Notepad++
Akelpad
Изображение
Аватара пользователя
crash
Former team member
Сообщения: 6517
Стаж: 20 лет 9 месяцев
Откуда: Бердск

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

Сообщение crash »

не знаю как у вас работает, но в переменных mysql:
port 3306

Добавлено спустя 1 минуту 44 секунды:
а вот на 21 порту:
%ftp crash.vndv.com
Connected to crash.vndv.com.
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 75 of 250 allowed.
220-Local time is now 05:55. Server port: 21.
220-This is a private system - No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 2 minutes of inactivity.
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Marsupilami
phpBB 1.0.0
Сообщения: 7
Стаж: 16 лет 9 месяцев
Забанен: Бессрочно

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

Сообщение Marsupilami »

Символы стали другие, но объективно ситуация не изменилась.
Marsupilami
phpBB 1.0.0
Сообщения: 7
Стаж: 16 лет 9 месяцев
Забанен: Бессрочно

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

Сообщение Marsupilami »

Что нужно выложить, чтобы могли помочь? Скриншоты, конфигурации .php?
Аватара пользователя
jekill
phpBB 1.0.0
Сообщения: 3
Стаж: 17 лет 2 месяца

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

Сообщение jekill »

про периодически бьющиеся строки:

После кропотливого анализа обнаружил, что виной всему странно работающая функция substr
функция случайным образом начинает работать будто она понимает UTF8 и возвращает то 2ва байта то 4

Лечится так:
в файле includes/utf/utf_tools.php нужно отключить работу вспомогательных функций через mb_string
например:

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

if ( false && extension_loaded('mbstring'))
Также помогает закоментировать строку 97

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

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

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

Сообщение rxu »

Если привести код в файле includes/utf/utf_tools.php в исходное состояние, и отключить расширение mbstring в настройках PHP, баг пропадает?
Изображение
Koyot
phpBB 1.4.0
Сообщения: 32
Стаж: 17 лет 2 месяца

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

Сообщение Koyot »

Проблема в случайном появление времени от времени вопросов, методы из первого поста не помогли. Может есть еще способы?
Аватара пользователя
macsim
phpBB 1.0.0
Сообщения: 6
Стаж: 18 лет 3 месяца
Откуда: 174

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

Сообщение macsim »

Помогло следующее:

ALTER DATABASE `user_basa` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

user_baza – Полное название Вашей базы данных.

Выполнить SQL запрос.
Koyot
phpBB 1.4.0
Сообщения: 32
Стаж: 17 лет 2 месяца

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

Сообщение Koyot »

macsim писал(а):ALTER DATABASE `user_basa` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Не помогло, есть еще хоть один вариант?
Аватара пользователя
Kat
phpBB 1.4.0
Сообщения: 30
Стаж: 16 лет 10 месяцев

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

Сообщение Kat »

rxu писал(а):До сих пор ошибка не повторяется?
У меня не было желания экспериментировать, т.к. оставляла форум на месяц, поэтому у меня стоял измененный файл.
Сегодня решила изменить на исходник, т.к. все сообщения с цитатами форум не пропускает и ... не растерялась (если это еще актуально).

Битый текст
В департаменте.��о лучше не называть�в каком�епартаменте�Ничего нет сердитее�сякого рода�епартаментов, полков�канцелярий и�словом�всякого�ода должностных�ословий�Теперь�же�сякий частный человек считает в лице�воем�скорбленным�се�бщество.�оворят�весьма недавно�оступила�росьба от�дного капитан-исправника�не помню�акого-то�орода�в которой�н излагает�сно�что гибнут государственные постановления��то�вященное�мя его произносится решительно�суе.�� доказательство�риложил к просьбе�реогромнейший�ом�акого-то романтического сочинения�где чрез каждые�есять страниц является капитан�справник,�естами даже�овершенно��ьяном виде.�так�во�збежание всяких�еприятностей,�учше�епартамент,��отором�дет дело,�ы назовем одним департаментом.�так�в одном департаменте служил один чиновник�чиновник�ельзя�казать�тобы�чень замечательный,�изенького роста,�есколько рябоват,�есколько рыжеват�несколько�аже на�ид�одслеповат�с�ебольшой лысиной на лбу�с морщинами по�беим�торонам�ек��ветом лица�то�азывается геморроидальным��Что ж делать!�иноват петербургский климат.�то�асается�о чина�ибо у нас прежде�сего нужно объявить чин)�то�н был�о�что называют вечный титулярный советник,�ад�оторым�как�звестно, натрунились и наострились вдоволь разные писатели�имеющие похвальное обыкновенье�алегать�а тех, которые не�огут�усаться�Фамилия�иновника�ыла Башмачкин.�же�о самому имени видно�что она когда-то�роизошла от�ашмака;�о когда�в какое время и каким образом�роизошла�на от�ашмака�ничего этого�е известно.��тец,��ед�и даже�урин�и все совершенно Башмачкины ходили в сапогах,�еременяя только раза три в год подметки.�мя�го�ыло Акакий�какиевич.�ожет�ыть�читателю�но�окажется�есколько�транным��ыисканным�но�ожно�верить, что его никак�е искали�а что�ами�обою�лучились такие обстоятельства,�то�икак�ельзя�ыло�ать другого�мени�и это произошло�менно вот как.�одился Акакий Акакиевич против ночи,�сли только не�зменяет память�на�3�арта�Покойница матушка�чиновница и�чень хорошая женщина�расположилась,�ак�ледует,�крестить ребенка�Матушка еще лежала на кровати�ротив�верей, а а по правую�уку стоял�ум�превосходнейший�еловек�Иван Иванович�рошкин�служивший�толоначальником в�енате,��ума, жена квартального�фицера, женщина редких�обродетелей�Арина Семеновна�елобрюшкова�Родильнице�редоставили на выбор любое из�рех�какое она хочет выбрать�Моккия�Соссия,�ли назвать ребенка во�мя мученика Хоздазата����Нет, -�одумала покойница��имена-то�се такие&q���Чтобы угодить ей�развернули�алендарь в другом�есте;�ышли опять�ри имени�Трифилий,�ула��арахасий���t�от это наказание, -�роговорила старуха��какие всь�мена�я�право�никогда��е слыхивала�аких�Пусть бы еще Варадат или Варух,��о Трифилий��арахасий&�o��Еще�ереворотили страницу �вышли: Павсикахий и Вахтисий.����у,�ж��ижу��сказала старуха, �что,�идно�его такая�удьба.�ж�сли�ак�пусть лучше будет он�азываться�как и отец его. Отец�ыл Акакий, так пусть и сын будет Акакий&�o��Таким�бразом��роизошел Акакий�какиевич�Ребенка�крестили�причем�н заплакал и�делал такую гримасу�как будто бы�редчувствовал�что�удет титулярный�оветник.�так�вот каким�бразом�роизошло�се это. Мы�ривели потому это,�тобы читатель�ог сам видеть,�то�то случилось совершенно по�еобходимости и другого имени дать�ыло никак�евозможно�Когда и��акое время он поступил��епартамент и кто определил его,�того�икто не�ог�рипомнить�Сколько не переменялось директоров� всяких�ачальников,�го�идели все�а одном и том же месте,��ом же положении,��ой же�амой�олжности, тем же�иновником для письма�так�то�отом�верились�что он�видно�так��одился на�вет уже совершенно готовым,��ицмундире и с лысиной на�олове�В департаменте�е оказывалось к�ему никакого уважения.�торожа не�олько�е вставали с�ест,�огда�н�роходил,�о�аже не�лядели на него,�ак�удто�ы�ерез�риемную�ролетела простая муха�Начальники�оступали с ним как-то холодно�еспотически�Какой�ибудь помощник�толоначальника�рямо совал ему под нос бумаги�не сказав даже��ot�ерепишите&q���или����от�нтересное,�орошенькое дельце����или что�ибудь приятное,�ак�потребляется� благовоспитанных�лужбах�И он брал�посмотрев только�а бумагу�не�лядя�кто�му�одложил и имел�и на то право.�н брал и тут же пристраивался�исать ее.�олодые чиновники�одсмеивались и�стрились�ад�им�во�колько�ватало канцелярского�строумия�рассказывали тут же�ред ним разные составленные про него истории;�ро�го�озяйку,�емидесятилетнюю старуху,�оворили�что�на бьет�го�спрашивали�когда будет�х свадьба�сыпали�а голову�му�умажки,�азывая�то�негом.�о ни�дного�лова�е отвечал на это Акакий Акакиевич�как будто бы�икого и не было перед�им;�то�е имело даже влияния�а занятия его:�реди�сех этих докук�н не�елал�и одной�шибки в письме�Только�сли�ж слишком�ыла невыносима�утка�когда толкали�го под�уку,�ешая�аниматься�воим делом�он�роизносил:�q��Оставьте�еня�зачем�ы меня обижаете?�����то�о странное�аключалось� словах и в голосе,��аким�ни�ыли произнесены�В нем слышалось�то-то такое преклоняющее на жалость,�то�дин молодой человек, недавно�пределившийся,�оторый,�о примеру других�позволил�ыло себе�осмеяться�ад ним,�друг�становился,�ак будто пронзенный�и��ех�ор как будто все�еременилось�еред�им и�оказалось в другом виде. Какая-то неестественная сила оттолкнула�го�т товарищей, с которыми он�ознакомился, приняв их�а приличных�светских�юдей�И долго потом�среди самых�еселых�инут�представлялся ему�изенький�иновник с лысинкою�а�бу,��воими проникающими�ловами�&���ставьте�еня,�ачем вы меня обижаете�q�� �и в этих�роникающих�ловах эвенели�ругие слова����Я брат�вой����И закрывал�ебя рукою бедный молодой человек�и много�аз�одрогался он потом на веку своем,�идя,�ак�ного в человеке бесчеловечья�как много�крыто свирепой грубости в�тонченной, образованной�ветскости�и,�оже! даже��ом�еловеке, которого свет�ризнает благородным и честным.�

Исходный текст
В департаменте... но лучше не называть, в каком департаменте. Ничего нет сердитее всякого рода департаментов, полков, канцелярий и, словом, всякого рода должностных сословий. Теперь уже всякий частный человек считает в лице своем оскорбленным все общество. Говорят, весьма недавно поступила просьба от одного капитан-исправника, не помню какого-то города, в которой он излагает ясно, что гибнут государственные постановления и что священное имя его произносится решительно всуе. А в доказательство приложил к просьбе преогромнейший том какого-то романтического сочинения, где чрез каждые десять страниц является капитан-исправник, местами даже совершенно в пьяном виде. Итак, во избежание всяких неприятностей, лучше департамент, о котором идет дело, мы назовем одним департаментом. Итак, в одном департаменте служил один чиновник; чиновник нельзя сказать чтобы очень замечательный, низенького роста, несколько рябоват, несколько рыжеват, несколько даже на вид подслеповат, с небольшой лысиной на лбу, с морщинами по обеим сторонам щек и цветом лица что называется геморроидальным... Что ж делать! виноват петербургский климат. Что касается до чина (ибо у нас прежде всего нужно объявить чин), то он был то, что называют вечный титулярный советник, над которым, как известно, натрунились и наострились вдоволь разные писатели, имеющие похвальное обыкновенье налегать на тех, которые не могут кусаться. Фамилия чиновника была Башмачкин. Уже по самому имени видно, что она когда-то произошла от башмака; но когда, в какое время и каким образом произошла она от башмака, ничего этого не известно. И отец, и дед, и даже шурин, и все совершенно Башмачкины ходили в сапогах, переменяя только раза три в год подметки. Имя его было Акакий Акакиевич. Может быть, читателю оно покажется несколько странным и выисканным, но можно уверить, что его никак не искали, а что сами собою случились такие обстоятельства, что никак нельзя было дать другого имени, и это произошло именно вот как. Родился Акакий Акакиевич против ночи, если только не изменяет память, на 23 марта. Покойница матушка, чиновница и очень хорошая женщина, расположилась, как следует, окрестить ребенка. Матушка еще лежала на кровати против дверей, а а по правую руку стоял кум, превосходнейший человек, Иван Иванович Ерошкин, служивший столоначальником в сенате, и кума, жена квартального офицера, женщина редких добродетелей, Арина Семеновна Белобрюшкова. Родильнице предоставили на выбор любое из трех, какое она хочет выбрать: Моккия, Соссия, или назвать ребенка во имя мученика Хоздазата. "Нет, - подумала покойница, - имена-то все такие". Чтобы угодить ей, развернули календарь в другом месте; вышли опять три имени: Трифилий, Дула и Варахасий. "Вот это наказание, - проговорила старуха, - какие всь имена; я, право, никогда и не слыхивала таких. Пусть бы еще Варадат или Варух, а то Трифилий и Варахасий". Еще переворотили страницу - вышли: Павсикахий и Вахтисий. "Ну, уж я вижу, - сказала старуха, - что, видно, его такая судьба. Уж если так, пусть лучше будет он называться, как и отец его. Отец был Акакий, так пусть и сын будет Акакий". Таким образом и произошел Акакий Акакиевич. Ребенка окрестили, причем он заплакал и сделал такую гримасу, как будто бы предчувствовал, что будет титулярный советник. Итак, вот каким образом произошло все это. Мы привели потому это, чтобы читатель мог сам видеть, что это случилось совершенно по необходимости и другого имени дать было никак невозможно. Когда и в какое время он поступил в департамент и кто определил его, этого никто не мог припомнить. Сколько не переменялось директоров и всяких начальников, его видели все на одном и том же месте, в том же положении, в той же самой должности, тем же чиновником для письма, так что потом уверились, что он, видно, так и родился на свет уже совершенно готовым, в вицмундире и с лысиной на голове. В департаменте не оказывалось к нему никакого уважения. Сторожа не только не вставали с мест, когда он проходил, но даже не глядели на него, как будто бы через приемную пролетела простая муха. Начальники поступали с ним как-то холодно-деспотически. Какой-нибудь помощник столоначальника прямо совал ему под нос бумаги, не сказав даже "перепишите", или "вот интересное, хорошенькое дельце", или что-нибудь приятное, как употребляется в благовоспитанных службах. И он брал, посмотрев только на бумагу, не глядя, кто ему подложил и имел ли на то право. Он брал и тут же пристраивался писать ее. Молодые чиновники подсмеивались и острились над ним, во сколько хватало канцелярского остроумия, рассказывали тут же пред ним разные составленные про него истории; про его хозяйку, семидесятилетнюю старуху, говорили, что она бьет его, спрашивали, когда будет их свадьба, сыпали на голову ему бумажки, называя это снегом. Но ни одного слова не отвечал на это Акакий Акакиевич, как будто бы никого и не было перед ним; это не имело даже влияния на занятия его: среди всех этих докук он не делал ни одной ошибки в письме. Только если уж слишком была невыносима шутка, когда толкали его под руку, мешая заниматься своим делом, он произносил: "Оставьте меня, зачем вы меня обижаете?" И что-то странное заключалось в словах и в голосе, с каким они были произнесены. В нем слышалось что-то такое преклоняющее на жалость, что один молодой человек, недавно определившийся, который, по примеру других, позволил было себе посмеяться над ним, вдруг остановился, как будто пронзенный, и с тех пор как будто все переменилось перед ним и показалось в другом виде. Какая-то неестественная сила оттолкнула его от товарищей, с которыми он познакомился, приняв их за приличных, светских людей. И долго потом, среди самых веселых минут, представлялся ему низенький чиновник с лысинкою на лбу, с своими проникающими словами: "Оставьте меня, зачем вы меня обижаете?" - и в этих проникающих словах эвенели другие слова: "Я брат твой". И закрывал себя рукою бедный молодой человек, и много раз содрогался он потом на веку своем, видя, как много в человеке бесчеловечья, как много скрыто свирепой грубости в утонченной, образованной светскости, и, боже! даже в том человеке, которого свет признает благородным и честным...
VertaL
phpBB 1.2.0
Сообщения: 16
Стаж: 18 лет

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

Сообщение VertaL »

Такая же проблема с периодической кракозяброй вместо некоторых символов.
Выкладываю скрин настироек переменных БД неоднозначного мастерхоста:
mysql_for_phpbbguru.gif
И ответ на запрос изменения этих переменных (через phpmyadmin это не реализовать) от суппорта:
На виртуальном хостинге это невозможно. Если для работы Вашего проекта
необходимо изменение серверных переменных, рекомендуем Вам обратить внимание
на VPS
В итоге выход поменять хост, перейти на VPS или при каждом конекте с БД отправлять следующий запрос:

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

SET NAMES 'utf8' COLLATE 'utf8_general_ci'
что я использую с mucleus CMS и все работает нормально.

Помогите изменить файл mysqli.php а конкретнее функцию sql_connect.

Я не очень разбираюсь в php. Гуру жду ваших решений.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
VertaL
phpBB 1.2.0
Сообщения: 16
Стаж: 18 лет

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

Сообщение VertaL »

Что самое забавное на другом виртуальном хостинге мастерхоста все работает как часы с такими же настройками.
Аватара пользователя
latysh
phpBB 1.0.0
Сообщения: 7
Стаж: 16 лет 7 месяцев

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

Сообщение latysh »

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

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

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

latysh писал(а):В чем может быть проблема?
latysh писал(а):IE6
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.

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