Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запись русских символов
 
 автор: Mookapek   (04.01.2008 в 18:56)   письмо автору
 
 

Здравствуйте.
Есть база данных, в ней таблица. Если произвожу вставку данных латинскими буквами, то все нормально, русскими - записываются одни вопросы. Ну понятное дело дописываю SET NAMES cp1251; перед функцией вставки и... вообще ничего не записывается. Как быть?
спасибо

   
 
 автор: Trianon   (04.01.2008 в 19:13)   письмо автору
 
   для: Mookapek   (04.01.2008 в 18:56)
 

Какой charset у базы и у таблицы?

   
 
 автор: Mookapek   (04.01.2008 в 20:59)   письмо автору
 
   для: Trianon   (04.01.2008 в 19:13)
 

при установке MySQL ставил cp1251.

   
 
 автор: ddhvvn   (04.01.2008 в 23:16)   письмо автору
 
   для: Mookapek   (04.01.2008 в 20:59)
 

А у Вас спрашивается у таблицы и у базы, а не по умолчанию...

   
 
 автор: Mookapek   (05.01.2008 в 00:10)   письмо автору
 
   для: ddhvvn   (04.01.2008 в 23:16)
 

А как узнать это? Я ничего не менял с кодировкой, только по умолчанию поставил cp1251, да в скрипте прописал ее же.

   
 
 автор: Trianon   (05.01.2008 в 01:07)   письмо автору
 
   для: Mookapek   (05.01.2008 в 00:10)
 

Как выглядит дамп структуры таблицы ( из phpMyAdmin) ?

   
 
 автор: Mookapek   (05.01.2008 в 16:48)   письмо автору
 
   для: Trianon   (05.01.2008 в 01:07)
 

Я через command client с MySQL работаю.
Вот таблица:

CREATE TABLE users (
id_user INT(11) NOT NULL auto_increment,
nic TINYTEXT NOT NULL,
pass TINYTEXT NOT NULL,
email TINYTEXT NULL,
PRIMARY KEY (id_user)
);

   
 
 автор: Trianon   (05.01.2008 в 16:52)   письмо автору
 
   для: Mookapek   (05.01.2008 в 16:48)
 

здесь не указана информация о кодовой странице таблицы.

Кроме того, обычно в соединении сервера с клиентом командной строки реальная кодовая страница соответствует OEM ( а не ANSI) кодировке, т.е.cp866, а не cp1251

   
 
 автор: Mookapek   (05.01.2008 в 17:20)   письмо автору
 
   для: Trianon   (05.01.2008 в 16:52)
 

кстати, на другой машине у меня нормально все работает, хотя устанавливал MySQL я также. Так все же, что мне необходимо сделать для корректной работы MySQL с русским языком в Windows?

   
 
 автор: Радин А.М.   (06.01.2008 в 01:46)   письмо автору
 
   для: Mookapek   (04.01.2008 в 18:56)
 

У меня такая штука приключилась с какой-то из версий MySQL. Поставил чуть более раннюю версию - всё прошло.

   
 
 автор: Trianon   (06.01.2008 в 01:56)   письмо автору
 
   для: Радин А.М.   (06.01.2008 в 01:46)
 

Такое могло быть, если Вы скатились с 4.1 на 4.0 .
Подход "достойный", ничего не скажешь.
Это примерно как с инжекторной машинки съехать на карбюраторную...

   
 
 автор: ddhvvn   (06.01.2008 в 14:15)   письмо автору
 
   для: Trianon   (06.01.2008 в 01:56)
 

Трианон, а я смотрю, Вы машинами не меньше чем php увлекакетесь? ;-))

   
 
 автор: Mookapek   (06.01.2008 в 15:26)   письмо автору
 
   для: Trianon   (06.01.2008 в 01:56)
 

Ребята, так что же делать?

   
 
 автор: Trianon   (06.01.2008 в 16:48)   письмо автору
 
   для: Mookapek   (06.01.2008 в 15:26)
 

Для начала - определиться, под DOS Вам нужно соединение или под Windows

   
 
 автор: Mookapek   (06.01.2008 в 17:49)   письмо автору
 
   для: Trianon   (06.01.2008 в 16:48)
 

под DOS.

   
 
 автор: Trianon   (06.01.2008 в 19:33)   письмо автору
 
   для: Mookapek   (06.01.2008 в 17:49)
 

Тогда, вероятно, нужно указывать

SET NAMES 'cp866'

   
 
 автор: Mookapek   (06.01.2008 в 19:53)   письмо автору
 
   для: Trianon   (06.01.2008 в 16:48)
 

а какая разница между соединением под DOS и под Windows?

   
 
 автор: Trianon   (06.01.2008 в 23:05)   письмо автору
 
   для: Mookapek   (06.01.2008 в 19:53)
 

разницу я описал в (05.01.2008 в 16:52)

   
 
 автор: Mookapek   (06.01.2008 в 23:46)   письмо автору
 
   для: Trianon   (06.01.2008 в 23:05)
 

хм... не очень я понимаю все эти тонкости. Что значит "в соединении сервера с клиентом командной строки"?

   
 
 автор: Trianon   (07.01.2008 в 01:02)   письмо автору
 
   для: Mookapek   (06.01.2008 в 23:46)
 

>хм... не очень я понимаю все эти тонкости. Что значит "в соединении сервера с клиентом командной строки"?
хм... теперь я не очень понимаю.
Вообще-то, я полагал, что это то, что происходит у Вас когда
>Я через command client с MySQL работаю. ( Mookapek (05.01.2008 в 16:48)

   
 
 автор: Mookapek   (07.01.2008 в 01:32)   письмо автору
 
   для: Trianon   (07.01.2008 в 01:02)
 

Я думал, что запись в базу данных не зависит от того, что я работаю с command client...

   
 
 автор: Радин А.М.   (11.01.2008 в 00:02)   письмо автору
 
   для: Mookapek   (06.01.2008 в 19:53)
 

DOS-кодировка и WINDOWS-кодировка отличаются. В этом и разница.

   
 
 автор: Mookapek   (11.01.2008 в 15:36)   письмо автору
 
   для: Радин А.М.   (11.01.2008 в 00:02)
 

Я попробовал вместо SET character_set_client='cp1251' поставил SET character_set_client='cp866' и все равно в таблицу записываются вопросы :(

   
 
 автор: Trianon   (11.01.2008 в 21:26)   письмо автору
 
   для: Mookapek   (11.01.2008 в 15:36)
 

попробуйте заново создать БД (после этой команды)

   
 
 автор: Mookapek   (11.01.2008 в 23:12)   письмо автору
 
   для: Trianon   (11.01.2008 в 21:26)
 

в скрипте написал SET NAMES cp1251; а в command client SET NAMES cp866; и все нормально заработало. А в WIndows XP (Сейчас Виста стоит) у меня работало, когда в command client стояло SET NAMES cp1251;
Хм... странно.
Большое спасибо Trianon'у.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования