我正在从csv文件导入数据,我可以看到第一条记录包含一个问号作为导入的第一个记录的第一个字符。 例如1,?A产品,120mls
我正在阅读字符编码并继续处理,因为数据库需要在某些表上使用COLLATE utf8mb4_unicode_ci,但即使为此特定表设置字符编码为uft8,仍会导致第一个记录导入问号。
编辑问题以根据评论显示结果。 CSV文件不包含我可以看到的空格或任何字符。
我删除了表格,重新创建了它,并在导入前将CSV文件中的第一条记录作为测试删除,结果仍然相同 有没有办法找到包含问号的记录LIKE'?%'或%?%返回空集
编辑问题以根据评论显示结果。我删除并重新创建表并从CSV文件中删除第一行作为测试,但结果是相同的 请注意,xxxx只是我屏蔽数据而不是CSV或表中包含的内容。
+--------+---------------------------------------------+-------+
| drugid | dname | dsize |
+--------+---------------------------------------------+-------+
| 1 | ?A S xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | 30LOZ |
| 2 | A S xxxxxxxxxxxxxxxxxxxxxxxxxxx | 50ML |
| 3 | A V xxxxxxxxxxxxxxx | 50ML |
| 4 | A V xxxxxxxxxxxxxxxx | 100ML |
| 5 | A V xxxxxxxxxxxxxxxxxxxxx | 50ML |
+--------+---------------------------------------------+-------+
更新我已经打开了使用Windex查看它的CSV文件(使用Excel创建),我在开始时看到以下内容A
答案 0 :(得分:0)
该字符不是问号,它是所谓的byte order mark或称为BOM的短号,仅显示为问号(没有用于显示BOM的字符)。在解析/处理CSV文件之前删除它,你没事。