Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#1 2007-11-21 09:33:45

McKane
Гость

Трабл с базой в юникоде

Друзья, смотрю тут каких только проблем по кодировке не было, не я один )

У меня трабл в том, что (далее цитирую ответ хостера):

Чтобы ваш сайт нормально работал с базой в кодировке юникод скрипты должны выбирать данную кодировку при подключении к базе. По умолчанию база у нас в win1251, но поддерживает все кодировки.

Иногда возникают проблемы с кодировками при использовании mysql версии 4.1 и выше. К сожалению, при сборке php жестко задаётся кодировка по умолчанию. Ее можно изменить либо пересборкой модуля php-mysql с соответствующими опциями, либо изменив php код. После соединения с mysql (ищем в коде вызов mysql_connect) вставляем строчки:

mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");

Где cp1251 заменяем на нужную кодировку (cp1251 устанавливается по умолчанию)
Эти 3 запроса устанавливают нужные Вам кодировки.

Пробовал и без этих строк все вариации - база в 1251, в юникоде и т.п. И вставляю эти строки с utf8 в mysql.php (правда не знаю точно куда, ставлю рядом с @mysql_query), и опять же все вариации кодировок самой базы. Ничего, все равно на сайте иероглифы. Помогите советом пожалуйста.

Да, забыл, ставлю ПанББ ПоверЕдишн от niikto

Редактировался McKane (2007-11-21 09:34:25)

#2 2007-11-21 11:07:50

crash
Гость

Re: Трабл с базой в юникоде

попробуйте расскоментироват

//@mysql_query("SET NAMES 'utf8'");

в mysql.php

#3 2007-11-21 11:17:26

McKane
Гость

Re: Трабл с базой в юникоде

Раскомментивал, 0 эмоций... Также писал вместо нее

mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");

Тоже ничего... Таблицы в базе при этом в utf8_general_ci, сравнение тоже в utf8_general_ci. Может тут неправильно?

Добавлено спустя     48 минут   52 секунды:
Нашел на блоге одного хостинга вот что:

Все давно знают что MySQL c ветки 4.1 поддерживает работу с текстовыми данными в разных кодировках, но почти всем php-шникам почему-то напряжно вставить три строчки кода лишние, чтоб небыло проблем с кодировкой.
Итак, в Punbb всё лечится установкой волшебной записи SET NAMES КОДИРОВКА. В Punbb это нужно сделать в дистрибутиве форума в файле
include/common.php
добавить нужно строчку с нужной кодировкой (в нашем случае это cp1251):
// set connection charset
$result = $db->query('SET NAMES CP1251;', __FILE__, __LINE__, $db->error());

Делал так, тоже ноль, иероглифы (туда подставлял и утф8).

Также в htacces ставил строку AddDefaultCharset utf-8, по нулям ((((

#4 2007-11-21 12:10:33

artoodetoo
Гость

Re: Трабл с базой в юникоде

будете изобретать велосипед?

McKane пишет:

Раскомментивал, 0 эмоций... Также писал вместо нее

не надо вместо нее. какраз эта строка земеняет  все указанные вашим провайдером строки smile это краткий вариант того же самого.

метод проверен множеством участников нашего форума - он работает!!!
возьмите заново чистый дистрибутив (сборка hcs или pe от niikto), установите ЗАНОВО форум, чтобы мусорные сообщения в искаженной кодировке не сбивали вас с толку, раскоментируйте строку set names и будет вам щастье!

можете отправить мне в личку подробности, я возьмусь довести ваш форум до рабочего состояния. уверен на 100%, что ничего кроме условий из FAQ делать не придется smile главное — не паниковать.

#5 2007-11-21 12:11:15

hcs
Гость

Re: Трабл с базой в юникоде

Давай по порядку.
Ты ставишь сборку и у тебя появляются кракозябры? Или ты берешь существующую базу и пытаешся её экспортировать?

#6 2007-11-21 12:21:58

McKane
Гость

Re: Трабл с базой в юникоде

Все по порядку.. Ставлю чистую сборку от niikto.
Т.е. создаю у хостера чистую базу, захожу в phpmyadmin, делаю сравнение в utf8_general_ci.

Далее делаю установку движка. Кракозябры. Раскомментиваем //@mysql_query("SET NAMES 'utf8'"); - не помогает

В htacess добавляю AddDefaultCharset utf-8, не помогает

Ну вобщем все способы попробовал какие нашел в сети

#7 2007-11-21 12:26:28

hcs
Гость

Re: Трабл с базой в юникоде

таблицы после создания какой дефолт-чарсет получают?

#8 2007-11-21 12:28:21

McKane
Гость

Re: Трабл с базой в юникоде

Ну раз выставил сравнение в utf8_general_ci, то и таблицы потом с ним, т.е. тоже utf8_general_ci у всех табличек

#9 2007-11-21 12:30:36

hcs
Гость

Re: Трабл с базой в юникоде

какой header content-encoding шлет сервер?

#10 2007-11-21 12:32:58

McKane
Гость

Re: Трабл с базой в юникоде

charset=utf-8

#11 2007-11-21 12:34:33

hcs
Гость

Re: Трабл с базой в юникоде

Где имеют место быть кракозябры? В интерфейсе форума? В оставляемых сообщениях?
Оставляемые сообщения при просмотре их phpMyAdmin'ом отображаются как? phpMyAdmin настроен на utf?

Добавлено спустя     5 минут   1 секунду:
Недавно я помогал решить проблему, очень похожую на эту. Клиент никак не мог наладить кодировку, мои тестовые скрипты выдавали нормальные результаты. Проблема оказалась в том что в SET NAMES utf8 не было пробела, проверь что все нормально.

#12 2007-11-21 12:40:11

McKane
Гость

Re: Трабл с базой в юникоде

На всем сайте везде вместо русского кракозябры, инглиш норм, phpMyAdmin настроен на utf. Сайт http://motoudm.ru

Написал artoodetoo в ЛС, но он что-то ушел... Вобщем оплачу 20 бакинских за установку сборки от niikto + возможность юзверям создавать свои блоги и галереи. Извините что развожу тут коммерцию, просто уже сил нет

#13 2007-11-21 12:45:43

hcs
Гость

Re: Трабл с базой в юникоде

Проблема в том что сервер отдает в кодировке win-1251
Вот заголовки:

Date: Wed, 21 Nov 2007 09:43:55 GMT
Server: Apache/2.2.3 (FreeBSD) mod_ssl/2.2.3 OpenSSL/0.9.7e-p1 DAV/2 PHP/5.2.0 with Suhosin-Patch
X-Powered-By: PHP/5.2.0
Expires: Thu, 21 Jul 1977 07:30:00 GMT
Last-Modified: Wed, 21 Nov 2007 09:43:56 GMT
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache
Content-Type: text/html; charset=windows-1251
X-Cache: MISS from *.*.*
Proxy-Connection: close
200 OK

Судя по всему в .htaccess ты либо не поставил AddDefaultCharset utf-8
либо это запрещено хостером.

Добавлено спустя     1 минуту   50 секунд:
В том что проблема сервера можешь убедиьться сам, открываешь свой сайт, в меню выбираешь "вид>кодировка", и там будет win-1251. Если выбрать принудительно utf-8, то сразу станет все нормально, т.е. повторяю, проблема в настройках сервера, сам движок настроен нормально.

#14 2007-11-21 12:48:50

McKane
Гость

Re: Трабл с базой в юникоде

Писал я в htacess AddDefaultCharset utf-8. hcs, возьметесь наладить (см. пост выше)?

Хм и что делать с проблемой сервера? хостер трындец тугой какой то

Редактировался McKane (2007-11-21 12:49:38)

#15 2007-11-21 12:52:28

hcs
Гость

Re: Трабл с базой в юникоде

Если хостер не разрешает пользовательский .htaccess , то наука тут помочь не в силах, пиши хостеру, мол так и так, вы грязные свиньи, мне нужна кодировка utf-8, либо убирайте у себя из конфига AddDefaultCharset win-1251, либо разрешайте оверрайд этой мегатупой настройки, иначе приду и лично напинаю по ... (вписать желаемое место) а то и вовсе расторгну с вами контракт.
Что у тебя за хостер?

#16 2007-11-21 12:54:36

McKane
Гость

Re: Трабл с базой в юникоде

2x4.ru - до этого все нравилось в конторе, всегда отвечали и т.п., еще 3 сайта держу у них. А сейчас с похмелья они что ли...

#17 2007-11-21 13:01:26

hcs
Гость

Re: Трабл с базой в юникоде

Судя по ip сервер во франции...
Кинь мне в лс данные на доступ к сPanel или чо там за интерфейс.

#18 2007-11-21 13:19:40

McKane
Гость

Re: Трабл с базой в юникоде

Там у них своя панель, в ней сразу все сайты мои.

И другой то хостинг неохота, итак уже 2 разных юзаю. Да и цена самые выгодные какие находил.. Но с ПанББ никак (

Редактировался McKane (2007-11-21 13:23:18)

#19 2007-11-21 13:22:25

hcs
Гость

Re: Трабл с базой в юникоде

Тогда обратись в саппорт, чтобы помогли настроить DefaultCharset

#20 2007-11-21 13:36:05

McKane
Гость

Re: Трабл с базой в юникоде

Саппорт сказал что у меня всё зашибись работает )) типа смените кодировку в браузере либо пропишите чтобы сайт отдавал в нормальной кодировке.. вопрос закрыт ) мде

Добавлено спустя     38 минут   21 секунду:
Кстати я же ставил на этот хостинг Wordpress, а он utf-8, и все нормально было... wtf?

#21 2007-11-21 14:27:10

hcs
Гость

Re: Трабл с базой в юникоде

а
вот тебе такое решение, совсем забыл про него, header.php, находишь строку

header('Pragma: no-cache');

после нее вставляешь:

header('Content-type: text/html; charset=utf-8');

теперь точно все должно работать!

#22 2007-11-21 14:31:20

McKane
Гость

Re: Трабл с базой в юникоде

tongue пашет! hcs, ты крут! с меня donate

Добавлено спустя     6 минут   49 секунд:
Скинул donate, еще раз благодарю за помощь

Добавлено спустя     13 минут   28 секунд:
Тока промежуточные мессаги (типа вы вошли на сайт) серавно в каракулях ))

#23 2007-11-21 15:29:49

hcs
Гость

Re: Трабл с базой в юникоде

Надо проверить языковые файлы, чтобы они были в уникоде

#24 2007-11-21 15:57:20

McKane
Гость

Re: Трабл с базой в юникоде

Язык. файлики все в утф'е, их сам niikto проверял. Да и я сам щас смотрел в АкельПаде

#25 2007-11-21 16:00:29

hcs
Гость

Re: Трабл с базой в юникоде

ПРоблема ясна, надо добавитьв include/functions.php, в функцию redirect тотже хэдер.

Подвал доски

Под управлением FluxBB. Хостинг Hostens