PDA

View Full Version : Знаки вопроса после установки PHPnuke


Ognis
20.06.2005, 11:27
Я установил точно так как вы написали в ЧАВО. Выбрал кодировку cp1251 и файл. Залил. Открываю свой сайт... а там все знаки вопроса,кроме регистрации поиска и т.д.

Можна что-то сделать? При установке базы ошибок не было,вот такое написало:

Your SQL query has been executed successfully:
The content of your file has been inserted. (nuke.sql: 324 Instructions)

Помогите плиззззз.

Soniks
20.06.2005, 12:03
Ognis на что ставите? какая версия нюки?

polarbear
18.07.2005, 19:22
у меня такая же проблема. Тоьлко в блоке "Ждут прверки" все нормально, а в навигации, администрации и тп. вопросики.
версия нюки PHP-NUKE-7.6_rus_patched_3.0_phpbb_2.0.16 взята с вашего сайта.

Soniks
18.07.2005, 20:30
polarbear при импортировании базы используйте нужную кодировку, как описано здесь:
http://mynuke.ru/modules.php?name=phpNuke&go=page&pid=23

polarbear
18.07.2005, 22:26
так я так все и делал, все кодировки соблюдал

Soniks
18.07.2005, 22:54
polarbear какая версия MYSQL?
при просмотре базы в phpMyAdmin, напротив каждой таблице в графе Сравнение что стоит?

polarbear
19.07.2005, 07:56
MySQL 4.1.12-Max
напротив каждой таблици стоит cp1251_general_ci, а в конце (всего) стоит latin1_swedish_ci, как поменять кодировку?

да, еще забыл спросить у меня некоторые блоки не отображаются, пишет "данный блок не может получить информацию.", что это права доступа к файлам и где взять список, кому какие высталять права?

polarbear
19.07.2005, 09:30
почувшись я поменял кодировку и все заработало, но теперь осталась вторая проблема, с блоками, где копать?

Soniks
19.07.2005, 11:00
polarbear проверьте все ли файлы блоков имеются в налиции

polarbear
19.07.2005, 12:21
да все на месте проверял не однократно.

Soniks
19.07.2005, 14:23
polarbear ну значит и правда нет информации для отображения... какие именно блоки, приведите пример.

polarbear
19.07.2005, 14:47
навигация, кто в он-лайне, опрос, статья дня, почти все кроме администрации, ждут проверки и иформации.

Soniks
19.07.2005, 15:27
polarbear скорее всего установились не все таблицы в БД или их содержание
или же файлы блоков были повреждены при заливания на ФТП

polarbear
19.07.2005, 15:43
таблицы установились все и содержание такое же как у меня на localhost, с блоками тоже все ОК.

polarbear
19.07.2005, 16:49
все разобрался, поставил cuteFTP 7 вместо 6го и закачал заново, ЗАРАБОТАЛО!!!!
СПАСИБО ЗА ПОМОЩЬ!!!

mad_alex
02.08.2005, 22:32
У меня такая же проблема :cry: нюка 7.8 ,мускул 4.1.12 , ПХП 5.0.4, апач 1.3.33 , кодировки все правильные. Подскажите чайнику !?

Soniks
02.08.2005, 23:09
mad_alex при просмотре базы в phpMyAdmin, напротив каждой таблице в графе Сравнение что стоит?

mad_alex
02.08.2005, 23:27
cp1251 general_ci. Ставлю Денвер с PHP 4.** все нормально!?

Soniks
02.08.2005, 23:45
mad_alex смотрите в самой базе, текст там отображается нормльно, например в таблице nuke_message, или же там ????

mad_alex
03.08.2005, 01:02
В базе все читабельно, никаких ????? ???. Может в php.ini ,что-то не прописал?

Soniks
03.08.2005, 02:09
mad_alex создайте в главной директории сайта файл .HTACCESS, и напишите там:
AddDefaultCharset windows-1251

mad_alex
03.08.2005, 03:29
Не помогло. Поставлю я себе 4 php , а когда наберусь опыта все равно домучаю Nuke+PHP 5.0 :wink:

mad_alex
03.08.2005, 20:54
Снес нафиг Apache,PHP 5,MySQL 4.1 и установил Денвер 2005.*.*. и т.д. Все заработало!!! Но если кто нибудь знает как конфигурировать Apache и т.д. напишите буду очень благодарен :oops:

P.S. Заработало но кривенько :lol: При входе в Настройки вылазит регистрация админа и по кругу. Где-то видел топик про эту промблему если подскажете спасибо, а то лазить по форумам уже надоело.

Soniks
03.08.2005, 21:13
mad_alex а чего лазить то, читай свое сообщение выделяй главное, например слово по кругу и в поиск :smile:

mad_alex
04.08.2005, 00:46
У меня-же Apache.

Soniks
04.08.2005, 00:47
mad_alex и что...

mad_alex
04.08.2005, 01:02
Soniks По Вашей подсказке нашел топик про эту проблему, но там сервер HTTP, а у меня Apache( или для Apache тоже самое?)

Soniks И еще , можно-ли мне в форуме разместить топик (mix с разных форумов и книг) про настройку Nuke,PHP,Apache,Mysql? Или это будет нарушением авторских прав? (просто у меня безлимитный доступ и у меня накопилось много интересного с разных сайтов)

Soniks
04.08.2005, 01:07
mad_alex Soniks По Вашей подсказке нашел топик про эту проблему, но там сервер HTTP, а у меня Apache( или для Apache тоже самое?)


http://www.yandex.ru/yandsearch?text=Apache+HTTP&stype=www

Soniks И еще , можно-ли мне в форуме разместить топик (mix с разных форумов и книг) про настройку Nuke,PHP,Apache,Mysql? Или это будет нарушением авторских прав?
можно и даже нужно, если сохранились источники, то и их опубликовать, желательно.

mad_alex
04.08.2005, 01:14
Soniks Ну я себя чуствую неповоротливым старцем :-)Спасибо! А все собраное постараюсь побыстрей упорядочнить и выложить на ваш сайт.

juka
08.02.2006, 18:54
Тоже кодировка не пашет, все посты читал...ничего не помогает, правда Денвер переставлять не пробовал! ??? - у меня нету но кодировка казябрами (почему незнаю кругом стоит 1251) Когда в браузере меняю кодировку на 1251 - показывается тест но очень мало, а когда делаю(утф-8) тогда текст который показывался-иероглифы...а новый норм! Прошу помощи! На локалхосте асе норм на хостинге стоит свой phpMyAdmin 2.6.3-pl1 и MySQL 5.0.18! Хостинг jino-net.ru! :mad:

Soniks
11.02.2006, 02:59
попробуйте это
http://forum.mynuke.ru/showthread.php?t=952

aleksua
17.02.2006, 01:32
такс..у меня подобная проблема..после обновления...
как можно исправить это не рпебегая к базе..поскольку почему- счас нету спенл на хостинге?
как правильно создать хтасес?
как это можно исправить?

Soniks
17.02.2006, 03:23
ну читац те же, не бу ду же я перепечатывать, уже сказанное и не однократно, если воспользоваться поиском, то увидите много различных вариантов и их решения.
http://forum.mynuke.ru/faq.php?faq=phpnuke_faq_err#faq_nuke_add_russql
как правильно создать хтасес?
при помощи блокнота

daer
23.03.2006, 15:17
И у меня вопросики...
Экспорт базы сделал правильно. На хостинге смотрю - у меня во всех таблицах кодировка шведская. Техподдержка говорит, что база работает у них в такой кодировке и поменять ее нельзя. Нужно, говорят, чтобы при каждом обращении к базе скрипт чт-то там делал с кодировкой. Все, что было написано в этой ветке, я пробовал - не помогает. Поддержка говорит, что если вручную (99 таблиц) поменять кодировку - то это мало поможет...
Вопрос, как настроить Нюку, чтобы она нормально работала с хостингом, на котором база работает в шведской (latin1_shwedish_ce) кодировке?

Soniks
24.03.2006, 05:22
daer вам надо полюбому изменить кодировку таблиц на нужную
http://forum.mynuke.ru/showthread.php?postid=7347#post7347
можно это проделать на локал хосте и затем уже с кодировками перенести на хост

а потом скрипте прописать $db->sql_query("SET names cp1251");

zoe
24.03.2006, 05:55
Выручите начинающего. Денвер, пытаюсь нюку запустить. С трудом создал базу, отвечает при попытке зайти: There seems to be a problem with the MySQL server, sorry for the inconvenience.

We should be back shortly.
КАжется, все перепробовал, осталось или пулю в лоб, или нюку в корзину.

daer
24.03.2006, 17:52
Проблему можно разбить на 2 части - кодировка базы и настройка Нюки.
1. Перед создание базы на хостинге - обязательно зайти в PHPMYADMIN (на хостинге) и поставить там русский язык и кодировку 1251 general ci.
2. Свою базу экспортим в sql и импортируем с кодировкой 1251
В итоге у таблиц в базе на хостинге должно появиться кодировка "1251 general ci" а не "latin1 shwedish". Если не получается - делать до тех пор, пока не получится (в форумах много советов). к шагу 2 переходить рано.

шаг2.
Это - теория:
Проблема кодировок и вопросительных знаков,
или все что нам нужно знать, чтобы решить эту проблему.

Внимание!!! Все решения этой проблемы 100% рабочие и проверялись на собственном опыте!!! Если будете все делать так, как описано ниже то ВСЕ У ВАС ПОЛУЧИТСЯ И ПРОБЛЕМА ИСЧЕЗНЕТ!!!
В качестве отправной точки рекомендую всем статью "MySQL 4.1 и любые проблемы с русскими буквами" которая находится на сайте httр://phpclub.ru/

Глава 1. Предистория.
Дело в том что начиная с версии 4.1.* MySQL использует по умолчанию клиентскую кодировку latin1 (latin1_swedish_ci). Поэтому,
если Вы хотите чтобы все данные в БД у Вас хранились и обрабатывались к кодировке cp1251 вам необходимо:
1) при установке MySQL, а можно и после установки с помощью средства MySQLInstanceConfig.exe (находся в подкаталоге /bin каталога с установленной MySQL)
установить
Manual Selected Default Character Set / Collation
Character Set cp1251
2) В my.ini (my.cfg) файле (находится в каталоге установленным MySQL) прописать /*Необязательный пункт, но лучше прописать*/
В секции [mysql]
default-character-set=cp1251
В секции [client]
default-character-set=cp1251
3) При создании базы данных (я обычно это делаю в PhpMyAdmin) устанавливать сравнение БД в значение
Collation=cp1251_general_ci
SQL-запрос в этом случае будет выглядеть так:
CREATE DATABASE `название_БД` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;
Соответственно все таблицы создаваемые в этой БД будут иметь кодировку по умолчанию cp1251.

Глава 2. Принцип решения проблемы с кодировками MySQL 4.1.* + PHP:
Решение проблемы с кодировками в связке MySQL 4.1.* + PHP-Nuke (PhpBB, Php Fusion, любые Php-скрипты, форумы и портальные системы выполняющие обращение к БД на MySQL).
1) создать БД в кодировке cp1251
2) установить клиентскую кодировку MySQL со значения latin1 в cp1251.
3) после каждого обращения к БД в PHP-скриптах (функции db_connect, mysql_connect) должен выполнятся запрос
mysql_query("SET NAMES cp1251") or die ("Invalid query: ".mysql_error());
Т.е в файлах типа mysql.php, db.php, config.php после функций db_connect или mysql_connect (они отвечают за соеднение с БД MySql)прописываем

mysql_query("SET NAMES cp1251") or die ("Invalid query: ".mysql_error());

Можно еще добавить:
mysql_query ("set client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");

ВАЖНО!!! Операции с добавлением строк необходимо проделывать ПОСЛЕ того как мы скопировали папку со скриптами в директорию сайта (обычно /www) и создания БД, но ДО того как мы устанавливаем скрипт (будь то Php-Nuke, Php-Fusion, PhpBB, скрипт интернет магазина на PHP) или экспортируем данные в БД (в случае с Php-Nuke - экспорт из файла mysql.php).
4) экспортировать данные (таблицы) в БД в кодировке cp1251 (или установка скрипта).
Итак,

Глава 3. Решение проблемы с кодировками для Php-Nuke:
1) Создаем БД:
CREATE DATABASE `название_БД` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;
2) Экспортируем таблицы в БД из файла nuke.sql:
В PhpMyAdmin переходим на созданную БД (пока без таблиц), вкладка "SQL", выбирам кодировку файла (Character set of the file) cp1251, указываем путь к файлу nuke.sql (через Обзор/Browse), нажимаем Пошел!(Go!).
ВАЖНО!!! На этом этапе очень важно выбрать кодировку файла cp1251, это и есть одна из наиболее часто встречающихся причин - неправильный импорт данных в БД. Уже на этом этапе при просмотре данных в таблицах в PhpMyAdmin вы должны увидеть корректно отображающиеся русские символы. На сайте русские символы пока будут отображаться как "???".
3) В файле db\db.php
после строк
$db = new sql_db($dbhost, $dbuname, $dbpass, $dbname, false); if(!$db->db_connect_id) { die("<br><br><center><img src=images/logo.gif><br><br><b>There seems to be a problem with the $dbtype server, sorry for the inconvenience.<br><br>We should be back shortly.</center></b>"); }
прописываем
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");

НАСЛАЖДАЕМСЯ РЕЗУЛЬТАТОМ!!!

Если предложенное решение не помогло, можно попробовать другие (но точно не знаю, действенные это решения или нет, так как мне помогли вышеперечисленные):
В файле mysql.php конструкцию
{$this->db_connect_id = @mysql_connect($this->server, $this->user, $this->password);
}
if ($this>db_connect_id)
заменяем на
{
$this->db_connect_id = @mysql_connect($this->server, $this->user, $this->password);
}
mysql_query ("set names ='cp1251'");
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
if($this->db_connect_id)

Конструкцию
{
$this->query_result = @mysql_query($query, $this->db_connect_id);
}
if($this->query_result)

Меняем на
{
$this->query_result = @mysql_query($query, $this->db_connect_id);
}
mysql_query ("set names ='cp1251'");
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
if($this->query_result)

Я очень рад если мой мануал помог Вам в решении проблемы с кодировками, по каким либо вопросам связанным с данной темой можете обращаться в личку. Не судите строго за стиль написания мануала, так как я его написал спонтанно и за полчаса. Если кому надо, буду рад ответить на вопросы по отдельным решениям проблем с кодировками в PhpBB2, PHP-Fusion, Shop-Script Premium, так я на практике решал эти проблемы, но в принципе все написанное в этом мануале, должно Вам помочь.


а это то, что помогло лично мне

В файле mainfile.php находим следующий код

Исходный код
if (defined('FORUM_ADMIN')) {
@require_once("../../../includes/sql_layer.php");
$dbi = sql_connect($dbhost, $dbuname, $dbpass, $dbname);
} elseif (defined('INSIDE_MOD')) {
@require_once("../../includes/sql_layer.php");
$dbi = sql_connect($dbhost, $dbuname, $dbpass, $dbname);
} else {
@require_once("includes/sql_layer.php");
$dbi = sql_connect($dbhost, $dbuname, $dbpass, $dbname);
}

и после него добавляем строку

Исходный код
mysql_query("SET CHARSET cp1251") or die (mysql_error());

сохраняем измененный файл и все, наслаждаемся результатами проделанной работы! После этого ваш сайт должен перестать отображать знаки вопросов ?????????? и начать нормально работать с кириллицей, отображая все по Русски! В самой базе тоже должно все отображаться Кириллицей.

(после этого отбражается, но при сохранении изменений в модуле снова вопросики)

Вот ещё одно решение!

Цитата
откройте config.php и впишите в нем после <?php
mysql_query("SET NAMES 'cp1251'");
тоже самое в admin.php



Цитата
/db/db.php'. В файле db.php внизу есть код:
$db = new sql_db($dbhost, $dbuname, $dbpass, $dbname, false);
после него вставить:
mysql_query ("set character_set_results='cp1251'");


И ВСЁ РАБОТАЕТ!!!

(вроде начало работать и у меня)

проверь config.php 90% проблема в нем. Укажи правильно имя базы, юзера или пароль.

SKYnoSKY
31.05.2006, 00:19
Рано порадовалси
теперя вот чего
Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in z:\home\localhost\www\Tools\nuke\html\bdopen.php on line 2

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in z:\home\localhost\www\Tools\nuke\html\bdopen.php on line 2

Warning: Cannot modify header information - headers already sent by (output started at z:\home\localhost\www\Tools\nuke\html\bdopen.php:2) in z:\home\localhost\www\Tools\nuke\html\mainfile.php on line 85

Soniks
31.05.2006, 01:25
либо конфиг не настроен, либо не в то место добавили mysql_query("SET NAMES 'cp1251'");

Statist
11.06.2006, 02:13
Я установил точно так как вы написали в ЧАВО. Выбрал кодировку cp1251 и файл. Залил. Открываю свой сайт... а там все знаки вопроса,кроме регистрации поиска и т.д.

Можна что-то сделать? При установке базы ошибок не было,вот такое написало:

Your SQL query has been executed successfully:
The content of your file has been inserted. (nuke.sql: 324 Instructions)

Помогите плиззззз.
Иди в тему "если проблемы с кодировкой"

typus
22.11.2006, 20:14
всем привет,собственно,вот тут http://www.shkurki.ru/modules.php?name=Forums&file=viewtopic&t=573&postdays=0&postorder=asc&start=15
отписался,сил нет уже бороться с кодировками.В двух словах,после многочисленных манипуляций с базами,их кодировками и пр. весь сайт отображается нормально,кроме галереи 4images и flahchat-а,где остались еще недобитые знаки вопросов.
Все предложенные методы решения на всех форумах применял - результат тот же.Что нибудь похожее у кого - то было уже?Где -то есть варианты еще покопать?Если кому есть что сказать - очень жду,пожалуйста!!!!

DeDMakar
26.11.2006, 02:02
Notice: ob_end_clean(): failed to delete buffer. No buffer to delete. in D:\usr\Apache\htdocs\mainfile.php on line 44

Notice: import_request_variables(): No prefix specified - possible security hazard in D:\usr\Apache\htdocs\mainfile.php on line 65
Что это за ошибки?
Версия PHP-NUKE-7.6_rus_patched_3.0_phpbb_2.0.19.7z

#umBer.[XIII]
03.12.2006, 16:39
Вот ДООООЛГОО думал что делать, весь мануал зачитал до дыр уже и наконец нашёл. Есть такая фишка в нелокализованной версии нюки, что вместо печатного русского текста рисуются всякие там ?????? и больше ничего. В faq написано что нужно заменять htmlentities на htmlspecialchars. После 2 замен я уже устал и решил найти другой путь. И нашёл.
Нужно всего лишь в файле /db/mysql.php сделать следующее
++++++++++++
НАЙТИ
=============
$this->db_connect_id = @mysql_pconnect($this->server, $this->user, $this->password);
=============
ПОСЛЕ, ДОБАВИТЬ
=============
mysql_query ("set names 'cp1251'");
=============
НАЙТИ
=============
$this->db_connect_id = @mysql_connect($this->server, $this->user, $this->password);
=============
ПОСЛЕ,ДОБАВИТЬ
=============
mysql_query ("set names 'cp1251'");
=============
СОХРАНИТЬ
=============
Работает без каких либо косяков на версии 7.9 :whistle:

awj7681
09.12.2006, 01:10
У меня по этому вопросу есть свой.
Пробывал все вышеописанное - не совсем работает: при измененеии имени модуля на например "Журнал", то получается следущее - в базу данных заносится такой бред - "&AElig;&oacute;&eth;&iacute;&agrave;&euml; ", если же в базе исправить на "Журнал" вручную через phpMyAdmin, то потом на странице отображается нормально, но если не исправлять, то на странице такое (того же слова "Журнал") - Æóðíàë. Вот такая фигня.

Вся база и таблицы залиты в ср1251 general ci. Также прописаны строки "mysql_query ("set names 'cp1251'");" в вышеупомянутых файлах в поддиректории "db".
Уже перечитал все страницы форума, все перепробовал что было написано. Версия нюки - 7.9.

Даже не знаю стоит ли задавать етот вопрос опять - "ЧТО ДЕЛАТЬ???"

#umBer.[XIII]
10.12.2006, 13:14
Мой способ работает если юзать мускул а не pSQl или любые другие базы данных. Если надо чтобы ещё и в других базах всё работало, надо это же проделать с другими файлами баз данных.
Кстати, попробуй скачать официальную версию с http://phpnuke.org/ Я на ней делал. Мускул 4.1.6 Версия php - 5.1.6. Тестировалось на денвере (http://www.denwer.ru). Обычно я просто прописывал mysql_query ("set names 'cp1251'"); в файле конфига (после строк соединения с базой данных, но здесь подключение происходит через инклудирование файлов баз данных (смотря какая база используется)). Так же можно попробовать тупой способ, который в ФАКЕ написан (то бишь заменить во всех файлах html_entities на htmlspecialchars), но есть один минус - нюка содержит примерно 1000 файлов с этими строками (то есть если времени не жалко, можешь прям сейчас приступать, и мдвед скажет превед твоей нюке примерно через недельку - другую :-)
Ещё есть ссылка - http://www.shkurki.ru/modules.php?name=Forums&file=viewtopic&t=573&postdays=0&postorder=asc&start=15
Там тоже решается эта проблема. :-)
Вот щас ещё вспомнил. У тебя неправильно кодировка была задана при дампе базы данных. Она должна быть cp1251 иначе вместо норамльных русских букв высвечивается Äîáðî ïîæàëîâàò&u или что нибудь подобное. :-)
+++
В дополнение ко всему хочу сказать, что при правильное настройке никаких странностей не наблюдается + ко всему хочу добавить что если хочешь чтобы у тебя работала твоя нюка, лучше всегда их иметь две! Одна рабочая а вторая для тестирования и с отдельной базой данных, тогда всё будет вообще зашибись.
Протестировал на второй нюке, если всё работает, ставишь апгрейт на первую - рабочую предварительно сделав дамп базы данных.
+ ко всему (уже в 3 раз) хочу добавить что есть такой файл как lang-russian.php и в нём должна быть строчка :
//========================
define ("_CHARSET","cp1251");
//========================
Это, для тех кто не знает КОДИРОВКА САЙТА (портала, нюки - называёте как хотите).
=============================================
Надеюсь что данная проблема уже исчерпала сама себя. Так как у меня после всех проделанных действий заработали 3 нюки 3 разных версий. :-)
Удачи всем :-)
ЗЫ Ещё можно попробовать способ описаный на шкурках:
Raider писал(а):
Если все выше перечисленное не помогло, то в mainfile.php найти:
Код: if (defined('FORUM_ADMIN')) {
@require_once("../../../includes/sql_layer.php");
$dbi = sql_connect($dbhost, $dbuname, $dbpass, $dbname); }
elseif (defined('INSIDE_MOD')) { @require_once("../../includes/sql_layer.php");
$dbi = sql_connect($dbhost, $dbuname, $dbpass, $dbname);
}
else
{
@require_once("includes/sql_layer.php");
$dbi = sql_connect($dbhost, $dbuname, $dbpass, $dbname); }
И после него добавить: Код:
mysql_query("SET CHARSET cp1251") or die (mysql_error());

awj7681
12.12.2006, 15:21
Щас застрелюсь!!!!!!!!!!
Опять я буду доставать вас.
Нашел в логах также момент записи в базу данных кириллического названия модуля -
106 Query SHOW GLOBAL STATUS
106 Query SHOW INNODB STATUS
122 Query SELECT radminsuper FROM nuke_authors WHERE aid='awj7681'
122 Query set names cp1251
122 Query set character_set_client cp1251
122 Query set character_set_results cp1251
122 Query set collation_connection cp1251_general_ci
122 Query update nuke_modules set custom_title='&Ocirc;&agrave;&eacute;&euml;&egrave;', view='0', inmenu='1', mod_group='0' where mid='3'
122 Query set names cp1251
122 Query set character_set_client cp1251
122 Query set character_set_results cp1251
122 Query set collation_connection cp1251_general_ci
122 Query SELECT title FROM nuke_modules ORDER BY title ASC
122 Query set names cp1251
122 Query set character_set_client cp1251
122 Query set character_set_results cp1251
122 Query set collation_connection cp1251_general_ci
122 Quit

Строка - update nuke_modules set custom_title='&Ocirc;&agrave;&eacute;&euml;&egrave;', view='0', inmenu='1', mod_group='0' where mid='3'. Это на украинском (русском) – Файли(ы).

Какого хера запрос на обновление идет в таком виде????? И в базе сохраняется в таком же виде. Но если в ручную через phpMyAdmin исправить в самой базе, то загружается на страницу в нормальном виде.

Как я понял, проблема вот в чем. Вся кириллица сохраняется в базе данных как «html named entites», то есть, например, слово «Журнал» перекодируется в - &AElig;&oacute;&eth;&iacute;&agrave;&euml;. Вот как избежать этого? И потом из базы грузить этот «html named entites» и отображает какой-то бред – Æóðíàë, то же слово, но в непонятной кодировке. Но если в ручную через phpMyAdmin исправить в самой базе на «Журнал», то загружается на страницу в нормальном виде, т.е. – «Журнал».

Так что проблемы отображения кириллических данных из самой базы – НЕТ. Есть только проблема их правильного сохранения, т.е. без конвертирования в «html (named) entites».

P.S. Все выше прочитанное мною уже проделано не один десяток раз.

BEN
12.12.2006, 15:55
давайте базы и пароли я вам помогу сделать.

awj7681
13.12.2006, 00:48
давайте базы и пароли я вам помогу сделать.
Хотелось бы конечно. Но у меня все локально. Учусь только.... Хочу сначала разобраться локально, прежде чем на хост соваться.
BEN, может что-то новое мне посоветуешь? Хочеться как-никак разобратся в этом деле, но вот эт а проблема как кость в горле стоит, не дает дальше двигаться.

Может это связано как-то с самой MySQL? Имеет ли к єтому отношение например настройка "MySQL charset - UTF8", написано в окне phpMyAdmin?

Может сбросишь мне на мыло кофигурационные файлы *.php (типа config, admin, mysql, db, mainfile и т.д)? Версия у меня 7.9. Мой

давайте базы и пароли я вам помогу сделать.
Хотелось бы конечно. Но у меня все локально. Учусь только.... Хочу сначала разобраться локально, прежде чем на хост соваться.
BEN, может что-то новое мне посоветуешь? Подскажешь в каком направлении двигаться? Хочеться как-никак разобратся в этом деле, но вот эта проблема как кость в горле стоит, не дает дальше двигаться.

Может это связано как-то с самой MySQL? Имеет ли к этому отношение например настройка MySQL - "MySQL charset - UTF8", (написано в окне phpMyAdmin)?

Может сбросишь мне на мыло кофигурационные файлы *.php (типа config, admin, mysql, db, mainfile и т.д)? Версия у меня 7.9. Мой мейл - awj7681@rambler.ru.

Может что-то с самим php???

BEN, СПАСИБО за желание помочь...

BEN
13.12.2006, 08:27
Этот касяк происходит при экспортировании файла sql в Mysql. При экспорте выбирайте cp1251 и всё будет ок проверено!

awj7681
14.12.2006, 10:02
Я уже выбирал ср1251 где только видел. Если залить базу с нуля и ничего не настраивать, то кирилица конечно отображается только знаками вопроса - ?????????????. Мне хватило только внести измененния в файл db.php. При этом знаки вопроса исчезли.

Но вопрос в том, что кирилица НЕ СОХРАНЯЕТСЯ в базе в нормальном виде!!! И уже запрос идет в изменненном виде! Хотя как видно из логов этому запросу предшествуют набор команд на измененение всего чего только можно на коировку ср1251. Может в настройках самого РНР что-то не так???

Еще заметил одну фишку. Если делать дапм базы, то кирилица експортируется нормально, тоесть, если потом открыть в блокноте файл sql самой базы, то в нем вся кирилица отображается нормально. НО!!! Если потом ее опять залить через импорт, при этом ВЫБРАВ кодировку файла СР1251, то в базе вся ета кирилица отображается в кодировке UTF-8. Не знаю почему.

По-моему, это что-то не так или с PHP или с MySQL. Версия сервера - 5.0.26 community-max nt-log (отображается в левой колонке окна phpMyAdmin).

Буду копать дальше.

frau
09.01.2007, 18:06
В общем так.... Не углубляясь в проблему... Эта фича вызвана тем что мускул пытаеться переконвертить из своей кодировки в клиентскую...
Надо знать с какой кодировкой работает мускул... Для этого пишем скрипт аля:
<?
$dbhost = "localhost";//тут ясный перец свой хост
$dbuser = "root";
$dbpasswd = "";//твой пароль к базе
if (!$dbcnx = @mysql_connect($dbhost, $dbuser, $dbpasswd)){
echo "can't conect to my_sql database";
}

else {
$charset = mysql_client_encoding($dbcnx);//вот сея фича ретурнит кодировку
printf($charset);//посмотрим, что за фигня...
}

?>
Опа....:) Теперь понятно?
Вот, смотриш какая кодировка у базы, и при создании бызы используеш ее самую...)
Кстати, с Новым годом...:) Годом свинъи... Хрю)