Задавайте вопросы, мы ответим
Вы не зашли.
Немогу вставить в таблицу информацию из текстового файла.
Есть таблица catalogs.tbl, поля: id_catalog тип INT, name тип TEXT.
Текстовый файл catalogs.txt
1 Процессоры
2 Материнские платы
3 Видеоадаптеры
4 Жесткие диски
5 Оперативная память
При попытке вставить информацию из файла
LOAD DATA INFILE 'C:/mysql/bin/catalogs.txt'
INTO TABLE catalogs;
получаю ответ
ERROR 1366 (HY000): Incorrect sring value: '\xCF\xFO\xEE\xF6\xE5\xF1...' for column 'name' at row 1
при смене русских букв в файле на английские информация добавляетса в таблицу.
Кодировка установленная:
Server characterset: cp1251
Db characterset: utf8 (даже не знаю как изменил, была тоже ср1251 но данные не вставлялись)
Client characterset: cp1251
Conn. characterset: cp1251
Очень хочу научитса, учить некому, приходитса самому разбиратса во всем.
Всем заранее спасибо!
Неактивен
Попробуйте добавить в явном виде кодировку данных при загрузке.
LOAD DATA INFILE 'C:/mysql/bin/catalogs.txt'
INTO TABLE catalogs
CHARACTER SET cp1251;
http://dev.mysql.com/doc/refman/5.1/en/load-data.html
Ну и, разумеется, убедитесь, что текстовое поле в catalogs имеет кодировку cp1251.
Неактивен
CHARACTER SET cp1251;
Спасибо помогло, данные вставились, но в виде иероглифов.
Попробовал создать заново таблицу
CREATE TABLE catalogs (
id_catalog INT(11) NOT NULL,
name TEXT CHARACTER SET cp1251
);
Тот же результат, вставляет только со строкой CHARACTER SET cp1251, но в виде иероглифов.
Неактивен
Думаю, что вставляет нормально, а вот клиент Ваш показывает не правильно. Какой клиент используете?
В консоли Windows, насколько я знаю, cp866.
Неактивен
В консоли Windows cp866, это я видел.
Версия клиента 5.0.67-community-nt
У меня XP Home Edition SP3.
Неактивен
Выполните сначала команду set names cp1251;
а затем делайте выборку из таблицы.
Неактивен
SET NAMES cp866?
Неактивен
Выполнил SET NAMES cp1251;
потом SELECT * FROM catalogs;
результат тотже
Неактивен
Огромное спасибо продлили мне жизнь
SET NAMES cp866 сработало.
Надеюсь на этом все. Или еще что то стоит поменять?
Неактивен
На этом этапе - нет. На этапе забирания данных лучше каждый раз (после подключения) писать кодировку,
в которой хотите получить данные (SET NAMES ...), иначе рискуете опять получить кракозяблы
Неактивен
Получилось немного наоборот, при вводе данных из файла приходитса указывать кодировку (иначе выдает ошибку) а при снятии данных из таблицы теряютса некоторые буквы и цифры. Как то странно выводитса.
Неактивен
Все, разобралса, просто при снятии данных приходитса дописывать LINES TERMINATED BY
Дальше думаю сам разберусь.
Всем спасибо за помощь, надеюсь и я скоро смогу кому-то помочь
Неактивен