Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день.
Все настройки переменных базы данных и все таблицы - UTF8
работаю на WinXP (RU) с Apache и PHP - все скрипты в UTF8.
При использовании [ load data local infile ]
если файл в utf8 я не использую convert и все замечательно заливается.
Но если файл в windows-1251 я использую convert(@data using utf8)
и вместо данных заливается пустота, как будто @data=''
В чем здесь затык?
Большая просьба если даже нет точного ответа - что-нибудь предположить.
Неактивен
Скорее всего, @data действительно пустая. Полный текст команды приведите,
пожалуйста.
Ну и для решения практической задачи — воспользуйтесь директивой
CHARACTER SET прямо в команде LOAD DATA INFILE.
Неактивен
Да нет же - я же написал, если файл UTF-8 я не использую convert и все заливается правильно!
Содержание файла я конечно проверил - все на месте.
Я попробовал, указав character set в директиве - тот же результат - пустота!
Но если в строках помимо кирилицы латиница - то она заливается.
load data local infile '....../prwin1251.csv' into table p4 character set cp1251 fields terminated by ';' lines terminated by '\r\n' (@a3,@a2,@a3) set f1=@a1,f2=@a2,f3=@a3
Куда копать дальше?
Неактивен
А кодировка таблицы какая?
Неактивен
Все настройки переменных базы данных и все таблицы - UTF8
работаю на WinXP (RU) с Apache и PHP - все скрипты в UTF8.
Неактивен
Так не бывает Можете привести кусочек данных, чтобы можно было
попробовать?
Неактивен
Нет проблем - я конечно нашел обходной маневр (перекодирую сам файл в PHP перед заливкой),
но разобраться хочу - не должно же так быть...
Куда выслать, e-mail?
Неактивен
Под WinXP использую MySql 5.1.45-community - и похоже в ней баг!
Проверял на FreeBSD MySql 5.1.41-community - все корректно отработала.
Буду пробовать 5.5 на XP - может там уже поправили.
Неактивен