utf8问题° 在mysql insert上

wswtfjt7  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(396)

我有一个项目是在拉威尔上运行的。
我的函数获取存储中的文件(utf8文件),然后将数据解析/插入mysql表(mysql的格式是utf8mb4\uunicode\uci)。
由于insert上的某些文件出现此错误,我感到很困惑:常规错误:1366不正确的字符串值:'\xc2'
相关插入文本失败:“la Clariè雷德奥伦°5"
问题似乎是°" 角色。当我删除它,插入工作。口音没问题,只是° 我不知道为什么。
我尝试了一些preg\u替换,但没有成功。

vfhzx4xs

vfhzx4xs1#

根据您用来读取csv的软件,您可能需要调整csv文档输出脚本。
在windows上,msexcel需要utf-8编码的csv及其相应的bom字符。为了满足这个需求,您只需要添加utf-8bom字符。
在macos系统上,ms excel要求使用制表符作为分隔符的utf-16 le编码的csv。
您可以使用此库来解析csv文件。他们已经把这些东西放进图书馆了。https://csv.thephpleague.com/9.0/interoperability/encoding/

nbnkbykc

nbnkbykc2#

听起来好像有些东西设置为ascii,而不是utf8,甚至不是拉丁文1。 ° 在ascii中不可用,因此可能是错误的原因。在拉丁文1中,它是十六进制 B0 . 在utf8中,它是 C2B0 . 因为错误信息只提到 C2 我猜目标字符集是ascii,而不是拉丁1。
请提供 SHOW CREATE TABLE 以及您用来读取文件的技术——不仅仅是“读取平面文本文件”。

相关问题