MySQL Load Data Infile (CSV): заменить / удалить вертикальные вкладки - PullRequest
0 голосов
/ 05 марта 2019

При использовании LOAD DATA INFILE для загрузки CSV-файла с помощью CHARACTER SET latin1 (таблица также кодируется как latin1) все вертикальные вкладки отображаются как «□».Ни замена 'u000b', ни '\ v' не сработали.

LOAD DATA INFILE 'database.csv'
INTO table taxa
CHARACTER SET latin1
FIELDS TERMINATED BY ';'
OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n'
(columns1...@column6...column19)
SET @column6 = REPLACE(@column6, '\u000b', '\t')

Когда я преобразовываю таблицу в UTF8 и импортирую ее с указанным UTF8, я получаю сообщение об ошибке "Недопустимая строка символов utf8: ... " в первом поле, где появляется \ v.

Notepad ++ показывает мне« VT », поэтому я знаю, что это вертикальная вкладка с escape-символом« \ v ».Замена его на Excel (где он отображается как '□') или NotePad до сих пор не работал.

Печать его на внешнем интерфейсе моего WebApp показывает:

'u000b' for \v` 
'u001d' for a Group Seperator`

Вопрос: Как убрать эти маленькие f *** - Можно было бы даже сделать это до того, как импортировать их, но я тоже не смог этого сделать.

1 Ответ

0 голосов
/ 05 марта 2019

Намного проще, чем я мог бы подумать:

NotePad ++ позволяет вам искать и символы юникода. Вместо \v я использовал \ u000b для поиска и замены символа. То же самое для символа GS \ u001d

Убедитесь, что для режима поиска установлено значение 'extended' , если вы не хотите использовать символы Юникода.

...