Задавайте вопросы, мы ответим
Вы не зашли.
Не могу разобраться с проблемой загрузки данных из текстового файла.
При загрузке русского текста , в таблице получаются битые символы.
Кодировка стояла ср1251 на базе и само собой таблице.
Пробывал поставить на базу кодировку utf8 и пересохранил с такой же кодировкой текстовик через эксплорен,результат тот же.
Англ текст в обоих случиях вошел нормально.
И еще вопрос , когда приписываем LOCAL , где должен располагаться загружаемый файл?
Похожие темы видел , но там все сводилось к смене кодировки базы и все получалсь.
Неактивен
kilden написал:
Не могу разобраться с проблемой загрузки данных из текстового файла.
При загрузке русского текста , в таблице получаются битые символы.
Кодировка стояла ср1251 на базе и само собой таблице.
Пробывал поставить на базу кодировку utf8 и пересохранил с такой же кодировкой текстовик через эксплорен,результат тот же.
Англ текст в обоих случиях вошел нормально.
Сервер неправильно определяет кодировку вашего клиента. Нужно явно указать серверу в какой кодировке работает клиент
SET NAMES имя кодировки;
Подозреваю, что пользуетесь командной строкой в винде - там кодировка cp866.
kilden написал:
И еще вопрос , когда приписываем LOCAL , где должен располагаться загружаемый файл?
http://dev.mysql.com/doc/refman/5.1/en/load-data.html
If LOCAL is specified, the file is read by the client program on the client host and sent to the server. The file can be given as a full path name to specify its exact location. If given as a relative path name, the name is interpreted relative to the directory in which the client program was started.
Неактивен
vasya написал:
kilden написал:
Не могу разобраться с проблемой загрузки данных из текстового файла.
При загрузке русского текста , в таблице получаются битые символы.
Кодировка стояла ср1251 на базе и само собой таблице.
Пробывал поставить на базу кодировку utf8 и пересохранил с такой же кодировкой текстовик через эксплорен,результат тот же.
Англ текст в обоих случиях вошел нормально.Сервер неправильно определяет кодировку вашего клиента. Нужно явно указать серверу в какой кодировке работает клиент
SET NAMES имя кодировки;
Подозреваю, что пользуетесь командной строкой в винде - там кодировка cp866.kilden написал:
И еще вопрос , когда приписываем LOCAL , где должен располагаться загружаемый файл?
http://dev.mysql.com/doc/refman/5.1/en/load-data.html
If LOCAL is specified, the file is read by the client program on the client host and sent to the server. The file can be given as a full path name to specify its exact location. If given as a relative path name, the name is interpreted relative to the directory in which the client program was started.
Захожу через MySQL Command Line Client , попробывал прописать этот Set names и создал заново текстовик ,всеравно не помогло(
Неактивен
Поиск по форуму позволяет узнать много интересного, например:
http://sqlinfo.ru/forum/viewtopic.php?id=2675
paulus написал:
LOAD DATA INFILE берет значение кодировки почему-то из character_set_database
(логичнее было бы брать из кодировки таблицы, но так уж сделали).
Соответственно,Код:
[celestia] root test > set character_set_database=utf8; Query OK, 0 rows affected (0.00 sec) [celestia] root test > load data infile '/tmp/blah' into table lditest; Query OK, 1 row affected, 1 warning (0.00 sec) Records: 1 Deleted: 0 Skipped: 0 Warnings: 1 [celestia] root test > select * from lditest; +---------------------------------------+ | a | +---------------------------------------+ | Привет, я — русская строка | +---------------------------------------+ 1 row in set (0.00 sec)
В случае винды:
Неактивен
При помощи set names cp866 все стало видно , видно дело было не в базе а в консоле
Неактивен