PDA

Показать полную графическую версию : [решено] Кодировка. MySQL, phpmyadmin


Страниц : [1] 2

Artem-Samsung
02-09-2008, 02:03
Выручайте ребята, экспортировали мне базу с одного места, нужно вставить в другое.
Размер БД свыше 200 мб, по этому как то в блокноте оно подвисает, не могу посмотреть.

Но экспортировал вроде успешно программой: Sypex Dumper Lite 1.0.8
Но вот посмотрев это все чудо в 200 таблиц я не очень обрадовался вот такими вот крякозябликам:
http://deykun.com/upload/kodirovka.jpg

Подскажите что и где посмотреть, исправить.

Кодировка сейчас у меня стоит: cp1251

dima1981
02-09-2008, 03:38
либо самого mysql либо в базах либо в таблице либо в файле и привести их к единой кодировке и там и там и там и там,
скорее всего посмотреть изначально в какой кодировке файл.

или я совсем не туда полез и тут задача для спецов, тогда сори ничего такого не думал )

vadimiron
02-09-2008, 10:00
и там и там и там и там »
Вот это рецепт успеха - везде должна быть одна и таже кодировка....Советую UTF-8. Во-первых, сохраните сам файл в данной кодировке (если не открывается блокнотом - открывайте другим редактором, который поддерживают большие файлы), потом выставите на базе данных тоже туже самую кодировку. Проверьте, имеют ли создаваемые таблицы тоже ту же самую кодировку.

Artem-Samsung
02-09-2008, 13:46
К сожалению мне кажется, что не так то все и просто :) Это я ставлю на свой сервер, который на пример кодировки не особо и не настраивал. Но все работает. Только эта база данных с форумом глючит.

Нашел вот статейку.
http://www.opennet.ru/base/dev/mysql_cp1251.txt.html

Мне больше всего там понравился комментарий:


по-моему мнению статья описывает сугубо частный случай,
mysql+phpmyadmin+ipb... в общем случае задача решается:

echo "create database my_db" | mysql -uroot
mysql --default-character-set=cp1251 -uroot -Dmy_db < my_dump.sql


Может кто то мне обьяснить куда прописать те две строчечки? )

vadimiron
02-09-2008, 14:12
две строчечки »
Это shell на Linux-е

dima1981
02-09-2008, 15:32
упс... )

dmitryst
02-09-2008, 16:20
Artem-Samsung, для mysql есть админ-утилита mySQL-administrator (бесплатная, лежит на сайте mysql-а). При помощи неё я успешно восстановил бэкап, очень похожий на этот. В опциях restore ставим кодировку - cp1251 и вперед :). Если не получится, кодировку меняем на utf8.
Размер БД свыше 200 мб, по этому как то в блокноте оно подвисает, не могу посмотреть. »
notepad ++ :)

Artem-Samsung
02-09-2008, 19:25
mySQL-administrator »
http://dev.mysql.com/downloads/gui-tools/5.0.html
Что то на это похоже?

dima1981
02-09-2008, 20:04
Отвлеку на пару секунд, тема вот какая как то давненько скачивал notepad ++ » где только не помню где и установил тогда из ехе побыстрому, но теперь куда не иду скачивать перевожусь на заграничный сайт какой то там кое как разбераюсь как скачать файл, скачиваю и установить не могу совсем, столько папок и т.п., хотя для меня и блакнот обычный вполне хорош, но так из чистой любознательности хочу узнать как этот ++ устанавливать, пришлось на сайте читать инструкции и т.д. там не понял и продолжать не стал, может подскажите?

кстати, что это с форумом, где все, у вас есть банеры или, как это называется не знаю вообщем где ссылка на www.oszone.net , я у себя на сайте размещу, очень хочется?

или скажите, что даёте добро, я хоть текстом напечатаю или, как то там придумаю картинку, но вот слоган с вас, дело деликатное. :clapping:

Artem-Samsung
02-09-2008, 20:11
Такс. Пытаюсь выводить все что в базе данных без пхп май админ. Своим скриптом:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<title>Untitled Document</title>
</head>

<body>
<?php
echo "Это обычный текст в пхп <br />";

$db = mysql_connect ("localhost", "root", "" );
mysql_select_db ("test",$db);

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

$result = mysql_query("
SELECT `name`
FROM `ibf_members`
WHERE email = 'hyena_laughs@mail.ru'
");
$my_row = mysql_fetch_array($result);


echo "Выборка из БД экспортирована:".$my_row['name']."<br />";


$result = mysql_query("
SELECT `a`
FROM `asd`
");

$my_row = mysql_fetch_array($result);
echo "Выборка из БД:".$my_row['a'];
?>
</body>
</html>


И что получается?:
а вот такое:
��� ������� ����� � ���
������� �� �� ��������������:Гиена Берта
������� �� ��:��-��

т.е. то что в БД видно прекрасно.
Если написать: <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

То получается такое:
Это обычный текст в пхп
Выборка из БД экспортирована:Гиена Берта
SELECT `a` FROM `asd` Выборка из БД:ку-ку

т.е. все что просто текст или выборка из другей БД не экспортированой отображается правильно.
А то неправильно :( Как бы все совместить?

dima1981
02-09-2008, 21:40
квадратами мне кажется только utf-8 отображается, так тут может и прописать Artem-Samsung, <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> »

<?php
$db = mysql_connect("localhost","root","...");
mysql_select_db("..." ,$db);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
$sql = mysql_query("SELECT * FROM rr" ,$db);
echo ("<table border ='1'>");
echo ("<tr><td>Адрес</td><td>Описание</td></tr>");
while ($pp = mysql_fetch_row($sql))
{
echo("<tr><td>$pp[0]</td><td>$pp[1]</td></tr>");
}
echo "</table>";
mysql_close($db);
?>

и попробуйте вот так, конечно всех данных не выведет, но хоть с кодировкой определенность появится не покажет, значит не utf-8 )

Artem-Samsung
02-09-2008, 23:19
http://hpclub.com.ua/test.php


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
</head>

<body>
<?php
echo "Это обычный текст в пхп <br />";

$db = mysql_connect ("localhost", "root", "" );
mysql_select_db ("test",$db);

mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");


$sql = mysql_query("
SELECT `name`
FROM `ibf_members`
WHERE email = 'hyena_laughs@mail.ru'
" ,$db);

$pp = mysql_fetch_row($sql);
echo "Экспортированая БД: ".$pp[0];

$result = mysql_query("
SELECT `a`
FROM `asd`
");

$my_row = mysql_fetch_array($result);
echo "<br>Выборка из БД: ".$my_row['a'];

?>
</body>
</html>



Это обычный текст в пхп
Экспортированая БД: Гиена Р вЂ�ерта
Выборка из БД: РєСѓ-РєСѓ


Еще больше запутался (

while ($pp = mysql_fetch_row($sql)) »
Там сильно много полей, что бы выводить.
Я вот только делаю так:
Экспортированая БД - та, с которой изначально проблеммы с кодировкой были
Выборка из БД: - уже сделаная в этой БД заметка, которая вроде как бы настроилась )

dmitryst
02-09-2008, 23:51
Artem-Samsung, по приведенной вами ссылке как раз то, что нужно, качайте.

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
</head>
<body>
<?php
echo "Это обычный текст в пхп <br />";
$db = mysql_connect ("localhost", "root", "" );
mysql_select_db ("test",$db);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'"); »
а если я заставлю БД выдавать результат в шведской кодировке, но браузеру скажу, что это зулусский? :) Вы уж определитесь с кодировкой для всей страницы

Artem-Samsung
03-09-2008, 00:06
а если я заставлю БД выдавать результат в шведской кодировке, но браузеру скажу, что это зулусский? Вы уж определитесь с кодировкой для всей страницы »

Да, ошибся. Кодировочку вверху махнул, получилось такое:
��� ������� ����� � ���
��������������� ��: Гиена Берта
������� �� ��: ку-ку

т.е. єкспортированая все равно не подружилась со страничкой.

Относительно моей ссылки, то немного не разобрался еще с php.ini (он похоже и так настроен),
а так все повторил, не помогло :(

Но вот по тому руководству как раз максимально приблизился к хоть какому то результату - новые записи в БД отображаются хорошо

dmitryst
03-09-2008, 00:22
Artem-Samsung, вы всё же воспользуйтесь утилитой и попробуйте конвертировать базу при восстановлении. Только заранее определите, какая кодировка будет использоваться везде - от базы до браузера (рекомендую юникод)

Artem-Samsung
03-09-2008, 01:17
dmitryst, спасиб.
Значит я все успешно установил, остается завтра подключить монитор днем и все настроить :)
А то управляю удаленно

dmitryst
03-09-2008, 12:33
Artem-Samsung, ага, ну поздравляю :). Впредь можно утилитой не пользоваться, а при создании базы указывать кодировки вручную, принудительно. Да, кстати, клиент командной строки тоже весьма неплох, можно просмотреть параметры создания каждой таблицы (SHOW CREATE `table_name`;)

Artem-Samsung
04-09-2008, 01:47
Капец )) Получается что то с чем то ))
Вообщем прикрепил я базу к форуму, на котором она стояла до этого и получилось такое:

http://hpclub.com.ua/forumhp/
Частично крякозябликами, частично правильно.
Когде переключить на utf-8, то то, что было крякозябликами - стало норм, а что норм - кубиками (((

Воощем попытался я импортировать программкой mysql administrator. Там выбирвается кодировка на которой экспортировать. Так вот, utf8 и cp-1251 пишет ошибку : ile: /srv/www/htdocs/backup/fantuac_harrypot.sql Error: Invalid character set selected for file.

Еще что меня настраживает. То что редактирую я файлик: my.cnf, а оно как то совсем не реагирует.
Добавлял в него и так:

[mysqld]

default-character-set=cp1251
character-set-server=cp1251
collation-server=cp1251_general_ci
init-connect="SET NAMES cp1251"
skip-character-set-client-handshake

И заменял cp1251 на utf8, ему все как то фиалетово.

dmitryst
04-09-2008, 12:46
Artem-Samsung, у вас сервер на чём? Если виндовый, то есть же утилита InstanceConfig - в ней и правьте. Если под никсами- ищите второй my.cnf или my.ini (обычно они бывают не там, где их ждешь :o )

dima1981
04-09-2008, 14:17
Красиво сделано )
вот может опять не то , но у меня такое было всё в одной кодировке и чепуха, получается, потом смотрю мне показанно, что сам файл сохранен в ansi, сохранил, в той в которой остальные и двинулся процесс )

может в браузере с кодировками попробывать переставлять, так то все путем, с форумом, отличный дизайн, мне понравился, единственное только кодировки вот что то, пару дней максимум на разбор, потом устаканится, тема то не вот тебе прям глобальная, поймется!




© OSzone.net 2001-2012