Вопрос избитый, но все же - проблема с кодировкой

  • Автор темы Автор темы asgard
  • Дата начала Дата начала

asgard

Новичок
Вопрос избитый, но все же - проблема с кодировкой

Здраствуй, All.

Прошу не отправляйте меня к факу и поиску - уже опробовал)))
Вводная:
- локальная машина, под виндой
- php 5.0
- mysql 5.0.67
-phpmyadmin 3.2.0.1
Итак:
- в phpmyadmin (3.2.0.1) - ввожу данные в таблицу на русском языке (кодировка в mysql (5.0.67) utf8, collacation utf8_general_ci) - в самом phpmyadmine все правильно выглядит на русском - в выводе на странице знаки вопроса))
- при соединении с базой данных стоит SET NAMES UTF8
Проблему вывода решил так, сделал скрипт, через который и добавляю данные в таблицу - вывод окей, в phpmyadmin - ГлавнаÑ..

Народ, подскажите где копать? И что изменить? Хочется и данные в phpmyadmin видеть нормально)
 
Структура таблицы представлена:
CREATE TABLE IF NOT EXISTS `123` (
`id` int(11) NOT NULL,
`001` varchar(30) NOT NULL,
`002` varchar(50) NOT NULL,
`003` varchar(50) NOT NULL,
`004` varchar(30) NOT NULL,
`005` varchar(250) NOT NULL,
`006` text NOT NULL,
`007` text NOT NULL,
`008` text NOT NULL,
`009` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
В полях 006-009 русский текст
 
Автор оригинала: vovanium
А страница/скрипт у тебя в UTF8?
SET Names стоит после подключения к базе данных:
PHP:
$this->db_link=@mysql_pconnect($this->host, $this->login, $this->pass); //connect dbase
    if (!$this->db_link) 
    {
    $this->dbase_error = mysql_error();
    return false;
    } 
    
    if (!$this->db_select()) return false;
    mysql_query("SET NAMES UTF8"); //set UTF8 codepage

Страница и скрипт в UTF8
 
asgard
Страница и скрипт в UTF8
Сомнительно, у тебя заголовок с кодировкой указывается в скрипте?
Добавь перед запросом который добавляет в базу строку
PHP:
print_r(mysql_fetch_row(mysql_query("SHOW VARIABLES LIKE 'character_set_connection'")));
 
asgard

[TELEPAT MODE ON]
default charset в настройках apache


AddDefaultCharset UTF-8 что то типа такого


в httpd.conf

[TELEPAT MODE OFF]
 
Автор оригинала: vovanium
asgard

Сомнительно, у тебя заголовок с кодировкой указывается в скрипте?
Добавь перед запросом который добавляет в базу строку
PHP:
print_r(mysql_fetch_row(mysql_query("SHOW VARIABLES LIKE 'character_set_connection'")));
Скриптом, как я писал ранее текст добавляется нормально, только кривым отображается в phpmyadmin, выводится тоже нормально. Мне нужно в первую очередь добавлять текст нормально phpmyadmin))

1. не работает..
2. в апаче utf8
 
asgard
Скриптом, как я писал ранее текст добавляется нормально, только кривым отображается в phpmyadmin, выводится тоже нормально
Раз в phpmyadmin выводится неправильно, значит твой скрипт неправильно добавляет, другого не дано. А якобы правильно показывает он по той причине, что он работает в одинаково неправильной кодировке, как при добавлении так и при выводе...
 
Автор оригинала: vovanium
asgard

Раз в phpmyadmin выводится неправильно, значит твой скрипт неправильно добавляет, другого не дано. А якобы правильно показывает он по той причине, что он работает в одинаково неправильной кодировке, как при добавлении так и при выводе...
Конечно, это первое, что приходит на ум, но это не так. Кодировка везде правильная... подозрения на винду.
Под юниксом все заработало)) Спасибо все за помощь)
 
asgard
У меня подозрения, что кодировка твоей БД, созданая - неверная.
 
cDLEON
Насколько я помню, PHPMyAdmin берет кодировку из свойств базы данных (default character set), и на основании ее уже делает преобразования.
 
Автор оригинала: Активист
cDLEON
Насколько я помню, PHPMyAdmin берет кодировку из свойств базы данных (default character set), и на основании ее уже делает преобразования.
В том то и суть, что кодировка везде правильная))) если было бы все так очевидно, мой вопрос здесь и не появился))
 
asgard
почему у других проблем нет? или у тебя особенная винда? не может быть таккак ты говоришь потому что это комп, а комп работает по определённым правилам!

-~{}~ 24.07.09 11:23:

если везде утф8 значит будет работать 100%.
 
asgard
в пхпьайадмин на главной есть - Сопоставление соединения с MySQL вот и там норм поставь и смотри че и как

-~{}~ 24.07.09 11:39:

и еще "каракули" (не "вопросики") обычно выводит когда кодировка страницы например win1251 а c бд данные пришли в utf8 и наоборот...
 
с пхп вконце скрипта выполни SHOW VARIABLES и покажи
с пхпмайадмина - тоже самое
 
Спасибо всем, кто отвечал))) проблему нашел)) причем она была указана выше в моем посте))
Надо было всего лишь mysql_query("SET NAMES UTF8"); //set UTF8 codepage поставить после того, как я выбрал нужную базу данных, а не после подключения. Все работает!
С меня бутылка для всех!!
 
Сверху