Mysql 从CSV文件中删除Unicode字符

Mysql 从CSV文件中删除Unicode字符,mysql,excel,csv,unicode,Mysql,Excel,Csv,Unicode,我工作的公司在其大部分操作中都使用MySQL数据库。每周我们的供应商都会向我们发送CSV格式的更新文件。我们通过我们的CRM软件上传文件,它将通过并更新数据库中的记录。理想情况下,这一切都可以完成。事情很少这么简单 很多时候,我们会收到来自系统的回扣,信息如下: ``Unicode Error exception 'Illuminate\Database\QueryException' with message 'SQLSTATE[HY000]: General error: 1267 Ille

我工作的公司在其大部分操作中都使用MySQL数据库。每周我们的供应商都会向我们发送CSV格式的更新文件。我们通过我们的CRM软件上传文件,它将通过并更新数据库中的记录。理想情况下,这一切都可以完成。事情很少这么简单

很多时候,我们会收到来自系统的回扣,信息如下:

``Unicode Error exception 'Illuminate\Database\QueryException' with
message 'SQLSTATE[HY000]: General error: 1267 Illegal mix of
collations (latin1_swedish_ci,IMPLICIT) and
(utf8_unicode_ci,COERCIBLE) for operation '=' (SQL: select `id` from
`pool` where `first_name` in (Nathalia) and `last_name` = Rodr``
此时,我在Excel中打开文件,找到导致问题的Unicode字符,在上面的例子中,它是以“Rodr”开头的姓氏后的下一个字符,请将其删除,然后再次尝试上载。我冲洗并重复,直到所有有问题的Unicode字符都被删除,上传完成

有时Excel的“兼容性报告”能够捕捉到有问题的Unicode字符,但通常它们会漏掉


我希望找到一个解决方案,删除任何unicode字符,这些字符会导致数据库表中出现
latin1\u swedish\u ci
排序问题,因为我认为这是导致我上传问题的原因。

错误中的
select
表示您已经设法将该csv加载到mysql中,并且正在查询数据进入的表。为什么不让mysql更改相关表/字段的字符集呢?您的公司最好不要让任何客户的名字中有非ASCII字符。如果您真的想进行过滤,那么编写一个小程序并不困难,例如使用Python和csv模块。对于初学者,您不需要在
Nathalia
周围加引号吗?欢迎使用堆栈溢出。“我希望找到一个解决方案”,你的意思是希望我们推荐一个网站或参考?如果是这样,那就离题了。你是说你想让我们写一个解决方案?再说一次,这是离题的,因为我们需要看到你的努力。请阅读“”,包括底部的链接,以及。你试过什么?为什么不起作用?我肯定你不想删除Unicode字符:Unicode是一个包含120000个字符的通用目录,包括英文数字和字母。您真正想要的是在两种编码(UTF-8到ISO-8859-1?)之间进行转换,并替换或去除目标编码不支持的字符。