не экспортируется UTF-8 из phpMyAdmin и Sypex

Farsh

~ on ~ high ~ wave ~
не экспортируется UTF-8 из phpMyAdmin и Sypex

Добрый вечер .
Проблема - непонятно почему , когда экспортирую данные UTF8 из mysql в .sql , они отображаются кракозябрами .

character_set_client | utf8
character_set_connection | utf8
character_set_database | utf8
character_set_filesystem | binary
character_set_results | utf8
character_set_server | utf8
character_set_system | utf8

При обычном запросе с выводом на страницу - все ок , а когда делаю экспорт - бред .
Нужно срочно ;(
Из-за чего это может быть ?
 

Farsh

~ on ~ high ~ wave ~
Автор оригинала: 440hz
а где они отображаются и поддерживает ли отображалка UTF-8

=)

p.s. сдается мне что все правильно экспортируется...
Теми самыми кракозябрами в том же самом окне phpMyAdmin'a , и в экспортируемом файле .sql
Вывод такого рода:
INSERT INTO table VALUES ('Ð_оссия');
 

Gas

может по одной?
Farsh
Не поверишь, это и есть русские буквы в utf-8, только кодировка view'вера iso-8859-1
 

Farsh

~ on ~ high ~ wave ~
Gas
Я взял скрипт , просто выводящий данные из бд , поставил хеадер на тот самый iso-8859-1 ,
и мне вывелись совершенно иные кракозябры =)
И вообще в пхпмайадмине :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
И любой sql запрос у меня тоже выводит кракозябры ...
Бред какой то .
 

Farsh

~ on ~ high ~ wave ~
*****
;-) Лишь бы насрать .
Я поставил хеадер на iso-8859-1 только потому , что Gas сказал , что это у меня кракозябры выводяться в кодировке utf8 во вьювере с кодировкой iso-8859-1 .
Следовательно , если поставить хеадер на iso-8859-1 , то это будет таже самая ситуация , не так ли ?
Символы другие -> значит в чем то и разница .
--
И вообще я прописал все настройки на utf8 , вставил данные в utf8. и стало нормально экспортироваться .
Интересует , каким образом можно конвертировать то , что у меня есть в нормальный utf8 ?

-~{}~ 26.01.08 21:42:

UP
народ , срочно нужно , помогитеее :<
 

Farsh

~ on ~ high ~ wave ~
Есть БД MySQL :
mysql> show create database example;
+-----------+-------------------------------------------------------------------
-+
| Database | Create Database
|
+-----------+-------------------------------------------------------------------
-+
| vkontakte | CREATE DATABASE `example` /*!40100 DEFAULT CHARACTER SET utf8 */
|
+-----------+-------------------------------------------------------------------
-+

mysql> show variables like '%char%';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\AppServ\MySQL\share\charsets\ |
+--------------------------+----------------------------------+

mysql> show variables like '%collation%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+

В общем в такую таблицу загонялись данные в UTF-8 .
Эти данные нормально выводятся на страницу , но phpmyadmin не воспринимает правильно русские символы в этой utf-8 кодировке .

Чтобы он вопрнимил , при коннекте делаем запросы :
$link->query("SET collation_connection='utf8_general_ci'");
$link->query("SET collation_server='utf8_general_ci'");
$link->query("SET character_set_client='utf8'");
$link->query("SET character_set_connection='utf8'");
$link->query("SET character_set_results='utf8'");
$link->query("SET character_set_server='utf8'");
$link->query("SET character_set_database='utf8'");

До сих пор не понимаю принцип работы MySql с кодировками .
Он мне сам выдал все свои настройки , и хороший utf8 будет только тогда , когда мы их заново зададим , точно такими же.

И вот мне нужно из того что есть сейчас , перегнать данные в тот самый нормальный utf8 , чтоб они воспринимались phpMyAdmin'om и можно было сделать нормальный дамп .
 

Фанат

oncle terrible
Команда форума
а с чего ты решил, что у тебя ненормальный утф?
и чем отличается нормальный от ненормального? и при чем здесь phpMyAdmin?
 

Farsh

~ on ~ high ~ wave ~
Потому что :
1) под нормальным UTF8 подразумевается , что данные в кодировке загнаны в бд MySQL с конкретным указанием кодировок UTF8 всего , что движется .
2) не работает даже обычный mysqldump из mysql , выводит неправильно ..
3) phpMyAdmin всегда сохраняет данные в UTF8 , и сохраняет правильно . А у мну русские символы не вопринимает =)
4) те самые 7 запросов решили всю проблему .
 

Фанат

oncle terrible
Команда форума
На самом деле нужен был только один - SET NAMES utf8
Но и то - его писать надо было не в виде шаманского заклинания ,а осмысленно. А у тебя проблемы именно с тем, чтобы осмыслить проблему и изложить нормально.
 

Farsh

~ on ~ high ~ wave ~
Просто нужно повнимательней прочитать =)
--
В общем я пытался вытащить данные из БД1 , и затолкать в БД2 с setnames , но из-за опечатки я подумал что это не прокатывает =)
Все , проблема решена , thx
 
Сверху