MySQL 加载数据文件 (CSV) : replace/remove vertical tabs

标签 mysql sql excel notepad

当使用 LOAD DATA INFILE 加载字符集 latin1(表也编码为 latin1)的 csv 文件时,所有垂直制表符都显示为“□”。 替换 '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”导入该表时,我收到一条错误消息,指出\v 所在的第一个字段中的“无效的 utf8 字符串:...”即将到来。

Notepad++ 显示了一个“VT”,所以我知道它是一个带有转义字符“\v”的垂直制表符。用 Excel(显示为“□”)或 NotePad 替换它到目前为止不起作用。

将其打印到我的 WebApp 前端显示:

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

问题: 如何删除这些小东西 - 甚至可以在导入它们之前完成,但我也无法做到这一点。

最佳答案

比我想象的要容易得多:

NotePad++ 还可以让您搜索 unicode 字符。 我使用 \u000b 而不是 \v搜索并替换字符。 GS 符号同样 \u001d

如果您不想使用 unicode 符号,请务必将搜索模式设置为“扩展”

关于MySQL 加载数据文件 (CSV) : replace/remove vertical tabs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55004345/

相关文章:

mysql - 黑盒 SQLi : MySql “error in your SQL syntax” when larger “UNSIGNED BIGINT”

mysql - 如何合并 SQL SELECT 字段

mysql - 如何为MySQL调试复杂的嵌套SQL语句?

excel - 如何将RGB颜色存储在变量中?

excel - 有没有办法从 CSV 中获取行而不加载整个文件?

mysql - nodejs 上的同步功能到 MySQL

python - MySQL UTC 日期格式

Excel 宏 - 仅将非空单元格从一张工作表粘贴到另一张工作表

mysql - Zend_Db : How to get the number of rows from a table?

mysql - 根据特定条件返回唯一行