Показать полную графическую версию : [решено] Кодировка. MySQL, phpmyadmin
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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.