Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Проблемы с кодировкой


Автор: Render 26.3.2006, 19:09
DB: MySQL
Version: 5.0.18

Описание: Есть база по умолчанию кодировка cp1251
Скрипт вставляет данные в таблицу, на русском->ошибка Data too long for column 'name' at row 1, помогает только:
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
перед запросом!!!
На англ. всё нормально!
Если у таблицы charset=latin1, то ошибка не выскакивает, в таблице русские символы "?????", но при запросе на выборку всё отображается нормально...

С 4 версией было тоже самое вылечил, с 5 почему-то не хочет??? Это же не выход перед каждым запросом писать эти три сточки...
Выручайте!!! smile

Автор: Kesh 26.3.2006, 21:06
Render, А что "SET NAMES cp1251" не помогает?
Добавлено @ 21:07
Это один раз делается, сразу после connect...

Автор: Render 26.3.2006, 21:11
не помогает! Я уже всё перепробывал
причем работает только когда присутсвуют эти три строки, иначе никак! Где копать??

Автор: VDaemon 27.3.2006, 00:47
Во-первых кодировку необходимо указать перед выбором БД
Код

mysql_query("SET NAMES cp1251;");
mysql_select_db($dbname);

Во-вторых в запросе при создании таблицы
Код

$query="CREATE TABLE 'table_name' (  'id' int NOT NULL auto_increment, ..........., PRIMARY KEY  ('id')) TYPE=MyISAM DEFAULT CHARSET=cp1251 ";


У меня тоже MySQL 5.0.18, всё должно работать.

Автор: sergejzr 27.3.2006, 00:55
Модератор: Название темы должно отражать ее суть!

Автор: Baiduzniy 6.4.2006, 14:55
Если вкладывать данные в базу посредством PHP и забирать так же, все нормально отображает. smile

Автор: Ignat 6.4.2006, 14:58
Baiduzniy, а если не используется PHP?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)