UTF16LE编码TSV文件导入MariaDB出现字符间隔问题求助
解决UTF16LE编码TSV文件导入MariaDB的字符乱序问题
字符间出现空格的核心原因是未指定文件编码为UTF16LE,MariaDB默认用单字节编码解析双字节的UTF16LE数据,导致每个字符的高字节被识别为空格(通常是0x00字节)。以下是正确的导入语句及关键说明:
正确导入语句
LOAD DATA LOW_PRIORITY LOCAL INFILE 'C:\\xampp\\mysql\\data\\test\\log2.csv' IGNORE INTO TABLE `test`.`testova2` CHARACTER SET utf16le FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (`USER`, `DATE`, `TIME`, `TESTRESULT`, `ERRORCODE`);
关键参数说明
CHARACTER SET utf16le:强制数据库以UTF16LE编码解析输入文件,正确识别双字节字符FIELDS TERMINATED BY '\t':明确字段分隔符为制表符(符合TSV文件格式)LINES TERMINATED BY '\r\n':适配Windows系统的换行符,若文件是Linux/macOS生成,可改为'\n'IGNORE 1 LINES:跳过1行表头(原文件仅1行表头,你之前写的IGNORE 4 LINES会错误跳过前4行数据)
额外注意事项
如果设置行终止符后仍有异常,可通过文本编辑器查看文件实际换行符类型再调整;同时确保目标表的字符集(如utf8mb4)兼容UTF16LE的字符,避免后续出现其他乱码问题。
内容的提问来源于stack exchange,提问作者user15969669
相关产品推荐
相关产品推荐

