SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 08.08.2008 07:43:08

dima198123
Участник
Зарегистрирован: 08.08.2008
Сообщений: 8

кодировка в MySQL

устанавливаю при стандартной настройке utf8 кодировку, все хорошо т.е. велком, корректирую настройки set names 'cp1251', создаю таблицу
CREATE TABLE tabl ( ...............)DEFAULT CHARSET cp1251;, начинаю инсертить часть данных с русскими буквами, часть с английскими в неё, все супер сохраняются в базе отоброжаются чудно, и на страницу выводятся, только английский алфавит видно отлично, но русский какие то закорючки ничего не могу понять, что тут сделать порекомендуете?
заранее спасибо.

Отредактированно dima198123 (08.08.2008 07:45:34)

Неактивен

 

#2 08.08.2008 12:23:01

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: кодировка в MySQL

set names cp1251 необходимо выполнять каждый раз после подключения к базе, в том числе в скрипте. Просто после mysql_connect() добавьте mysql_query("SET NAMES cp1251");

Неактивен

 

#3 09.08.2008 01:18:54

dima198123
Участник
Зарегистрирован: 08.08.2008
Сообщений: 8

Re: кодировка в MySQL

захожу в мускул по умолчанию настроен на latin1,
набераю set names cp1251;,
создаю базу CREATE DATABASE ddd;,
набераю set names cp1251;,
создаю таблицу CREATE TABLE tabl2 (im varchar(20), em text)DEFAULT CHARSET cp1251;
набераю set names cp1251;,
заполняю таблицу
INSERT INTO tabl2
(im, em)
values
("Имя","123@123.com")
набераю set names cp1251;,
выполняю скрипт
<?php
$db = mysql_connect("localhost","root","123");
mysql_select_db("ddd" ,$db);
mysql_query("SET NAMES 'cp1251'"); 
mysql_query("SET CHARACTER SET 'cp1251'");
$sql = mysql_query("SELECT * FROM tabl2" ,$db);
echo ("<table border ='1'>");
echo ("<tr><td>Имя</td><td>Адрес</td></tr>");
while ($tablerows = mysql_fetch_row($sql))
{
echo("<tr><td>$tablerows[1]</td><td>$tablerows[2]</td></tr>");
}
echo "</table>";
mysql_close($db);
?>
не получается, получаются закорючки заместо русских букв.
но не может же это быть так, потому, что у меня виста стартер...?
подскажите пожалуйста как быть?

Неактивен

 

#4 09.08.2008 01:36:36

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: кодировка в MySQL

Изначальные команды делаете в консоли windows? Попробуйте использовать вместо этого MySQL Query Browser http://dev.mysql.com/downloads/gui-tools/5.0.html

У виндовой консоли известны проблемы с кодировкой. Возможно, получится, если в консоли будете выполнять SET NAMES cp866, а кодировку таблицы оставите CP1251.

Неактивен

 

#5 09.08.2008 03:23:58

dima198123
Участник
Зарегистрирован: 08.08.2008
Сообщений: 8

Re: кодировка в MySQL

консоль это черная таблица mysql?
и куда нужно прописывать ср866?

Неактивен

 

#6 09.08.2008 09:17:14

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: кодировка в MySQL

Под виндовой консолью имеется в виду окно cmd.
Там Вы, по идее, пишете "mysql"  - запускаете клиент mysql - и получаете "черную таблицу mysql".
SET NAMES cp866 в клиенте и писать (т.е. там же, где SELECT и т.п.)

Неактивен

 

#7 09.08.2008 09:18:40

dima198123
Участник
Зарегистрирован: 08.08.2008
Сообщений: 8

Re: кодировка в MySQL

супер! спасибо огромное теперь это выглядит так и отлично отоброжается
захожу в мускул по умолчанию настроен на latin1,
набераю set names cp866;,
создаю базу CREATE DATABASE ddd;
создаю таблицу CREATE TABLE tabl2 (im varchar(20), em text)DEFAULT CHARSET cp1251;
заполняю таблицу
INSERT INTO tabl2
(im, em)
values
("Имя","123@123.com")
набераю set names cp1251;,
выполняю скрипт
<?php
$db = mysql_connect("localhost","root","123");
mysql_select_db("ddd" ,$db);
mysql_query("SET NAMES 'cp866'"); 
mysql_query("SET CHARACTER SET 'cp1251'");
$sql = mysql_query("SELECT * FROM tabl2" ,$db);
echo ("<table border ='1'>");
echo ("<tr><td>Имя</td><td>Адрес</td></tr>");
while ($tablerows = mysql_fetch_row($sql))
{
echo("<tr><td>$tablerows[1]</td><td>$tablerows[2]</td></tr>");
}
echo "</table>";
mysql_close($db);
?>
надеюсь тут никаких подводных камней и ничего подобного нет, что то простым решение оказалось, над этим которую неделю страдаю, теперь здорово ПСБ, респект и уважуха вам!!!

Неактивен

 

#8 09.08.2008 14:53:00

dima198123
Участник
Зарегистрирован: 08.08.2008
Сообщений: 8

Re: кодировка в MySQL

с выборкой не получается
use ddd
set names cp866;
select * from tabl2;
SELECT * FROM tabl2 WHERE im = "Имя";
результат
Empty set (0.00 sec)

Неактивен

 

#9 09.08.2008 15:01:52

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: кодировка в MySQL

Попробуйте все-таки отказаться от видновой консоли и использовать MySQL Query Brower.

Неактивен

 

#10 09.08.2008 15:12:28

dima198123
Участник
Зарегистрирован: 08.08.2008
Сообщений: 8

Re: кодировка в MySQL

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

Неактивен

 

#11 09.08.2008 15:23:44

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: кодировка в MySQL

Скорее всего query browser будет работать в висте нормально. Что касается видновой консоли - это недоконсоль, здесь на форуме много тем про нее (как я понимаю, если винда английская, то вообще с русским в ней тяжело, а если русская, то кодировка cp866 должна помогать по идее, но это почему-то происходит не всегда).

Неактивен

 

#12 09.08.2008 16:03:26

dima198123
Участник
Зарегистрирован: 08.08.2008
Сообщений: 8

Re: кодировка в MySQL

не для 86 windows MySQL Query Brower функционирует нормально.
захожу, создаю новое подключение и потом на английском остальное для него не бывает русификатора где скачать?
или руководства на русском, совсем не понятно как с ним работать

Неактивен

 

#13 09.08.2008 16:51:53

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Неактивен

 

#14 09.08.2008 18:57:58

dima198123
Участник
Зарегистрирован: 08.08.2008
Сообщений: 8

Re: кодировка в MySQL

Огромное спасибо rgbeast.

Неактивен

 

#15 05.10.2008 13:25:20

Zloy70
Участник
Зарегистрирован: 05.10.2008
Сообщений: 1

Re: кодировка в MySQL

Тогда и мне подскажите.  Проверил скрипт на "Денвере" работает исключительно!  Но когда перенёс его на сервер с кодировой utf8, то текст с русскими и английкими буквами отображается правильно, но вот небольшая табличка, которая должна появиться на определённй страничке не появляется, хотя из административной части скрипта она создана.  Вопрос это в кодировке дело или нет ?  при том что на "Денвере" работает всё прекрасно. Спасибо

Неактивен

 

#16 05.10.2008 13:37:17

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: кодировка в MySQL

Вряд ли в кодировке. Уточните условия

Неактивен

 

#17 06.10.2008 16:49:04

Kassad
Участник
Зарегистрирован: 01.10.2008
Сообщений: 10

Re: кодировка в MySQL

Zloy70 написал:

Тогда и мне подскажите.  Проверил скрипт на "Денвере" работает исключительно!  Но когда перенёс его на сервер с кодировой utf8, то текст с русскими и английкими буквами отображается правильно, но вот небольшая табличка, которая должна появиться на определённй страничке не появляется, хотя из административной части скрипта она создана.  Вопрос это в кодировке дело или нет ?  при том что на "Денвере" работает всё прекрасно. Спасибо

Очень мало информации. Первое, что пришло в голову, так это стоит sql-mode="STRICT_TRANS_TABLES" и скрипт отказывается корректно с ним работать.

Отредактированно Kassad (06.10.2008 16:52:06)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson