Быстрый лёгкий надёжный форумный движок
Вы не вошли.
Друзья, смотрю тут каких только проблем по кодировке не было, не я один )
У меня трабл в том, что (далее цитирую ответ хостера):
Чтобы ваш сайт нормально работал с базой в кодировке юникод скрипты должны выбирать данную кодировку при подключении к базе. По умолчанию база у нас в 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)
попробуйте расскоментироват
//@mysql_query("SET NAMES 'utf8'");
в mysql.php
Раскомментивал, 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, по нулям ((((
будете изобретать велосипед?
Раскомментивал, 0 эмоций... Также писал вместо нее
не надо вместо нее. какраз эта строка земеняет все указанные вашим провайдером строки это краткий вариант того же самого.
метод проверен множеством участников нашего форума - он работает!!!
возьмите заново чистый дистрибутив (сборка hcs или pe от niikto), установите ЗАНОВО форум, чтобы мусорные сообщения в искаженной кодировке не сбивали вас с толку, раскоментируйте строку set names и будет вам щастье!
можете отправить мне в личку подробности, я возьмусь довести ваш форум до рабочего состояния. уверен на 100%, что ничего кроме условий из FAQ делать не придется главное — не паниковать.
Давай по порядку.
Ты ставишь сборку и у тебя появляются кракозябры? Или ты берешь существующую базу и пытаешся её экспортировать?
Все по порядку.. Ставлю чистую сборку от niikto.
Т.е. создаю у хостера чистую базу, захожу в phpmyadmin, делаю сравнение в utf8_general_ci.
Далее делаю установку движка. Кракозябры. Раскомментиваем //@mysql_query("SET NAMES 'utf8'"); - не помогает
В htacess добавляю AddDefaultCharset utf-8, не помогает
Ну вобщем все способы попробовал какие нашел в сети
таблицы после создания какой дефолт-чарсет получают?
Ну раз выставил сравнение в utf8_general_ci, то и таблицы потом с ним, т.е. тоже utf8_general_ci у всех табличек
какой header content-encoding шлет сервер?
charset=utf-8
Где имеют место быть кракозябры? В интерфейсе форума? В оставляемых сообщениях?
Оставляемые сообщения при просмотре их phpMyAdmin'ом отображаются как? phpMyAdmin настроен на utf?
Добавлено спустя 5 минут 1 секунду:
Недавно я помогал решить проблему, очень похожую на эту. Клиент никак не мог наладить кодировку, мои тестовые скрипты выдавали нормальные результаты. Проблема оказалась в том что в SET NAMES utf8 не было пробела, проверь что все нормально.
На всем сайте везде вместо русского кракозябры, инглиш норм, phpMyAdmin настроен на utf. Сайт http://motoudm.ru
Написал artoodetoo в ЛС, но он что-то ушел... Вобщем оплачу 20 бакинских за установку сборки от niikto + возможность юзверям создавать свои блоги и галереи. Извините что развожу тут коммерцию, просто уже сил нет
Проблема в том что сервер отдает в кодировке 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, то сразу станет все нормально, т.е. повторяю, проблема в настройках сервера, сам движок настроен нормально.
Писал я в htacess AddDefaultCharset utf-8. hcs, возьметесь наладить (см. пост выше)?
Хм и что делать с проблемой сервера? хостер трындец тугой какой то
Редактировался McKane (2007-11-21 12:49:38)
Если хостер не разрешает пользовательский .htaccess , то наука тут помочь не в силах, пиши хостеру, мол так и так, вы грязные свиньи, мне нужна кодировка utf-8, либо убирайте у себя из конфига AddDefaultCharset win-1251, либо разрешайте оверрайд этой мегатупой настройки, иначе приду и лично напинаю по ... (вписать желаемое место) а то и вовсе расторгну с вами контракт.
Что у тебя за хостер?
2x4.ru - до этого все нравилось в конторе, всегда отвечали и т.п., еще 3 сайта держу у них. А сейчас с похмелья они что ли...
Судя по ip сервер во франции...
Кинь мне в лс данные на доступ к сPanel или чо там за интерфейс.
Там у них своя панель, в ней сразу все сайты мои.
И другой то хостинг неохота, итак уже 2 разных юзаю. Да и цена самые выгодные какие находил.. Но с ПанББ никак (
Редактировался McKane (2007-11-21 13:23:18)
Тогда обратись в саппорт, чтобы помогли настроить DefaultCharset
Саппорт сказал что у меня всё зашибись работает )) типа смените кодировку в браузере либо пропишите чтобы сайт отдавал в нормальной кодировке.. вопрос закрыт ) мде
Добавлено спустя 38 минут 21 секунду:
Кстати я же ставил на этот хостинг Wordpress, а он utf-8, и все нормально было... wtf?
а
вот тебе такое решение, совсем забыл про него, header.php, находишь строку
header('Pragma: no-cache');
после нее вставляешь:
header('Content-type: text/html; charset=utf-8');
теперь точно все должно работать!
пашет! hcs, ты крут! с меня donate
Добавлено спустя 6 минут 49 секунд:
Скинул donate, еще раз благодарю за помощь
Добавлено спустя 13 минут 28 секунд:
Тока промежуточные мессаги (типа вы вошли на сайт) серавно в каракулях ))
Надо проверить языковые файлы, чтобы они были в уникоде
Язык. файлики все в утф'е, их сам niikto проверял. Да и я сам щас смотрел в АкельПаде
ПРоблема ясна, надо добавитьв include/functions.php, в функцию redirect тотже хэдер.