x0710 发表于 2022-9-2 11:17

关于MySQL 5.7乱码搞了一上午的收获

本帖最后由 x0710 于 2022-9-3 10:31 编辑

我全程使用CMD进行sql操作,没有使用可视化工具早上重装一个系统,MySQL也重装了一遍,然后导入一下备份的数据。
但我这里还有一份csv文件要导入,LOAD DATA大法,但是导入的中文全乱码。
我以为字符集有误,改了my.ini,但是其它中文没有错误,只有要导入的csv文件乱码。
我以为表的字符集没有指定,又重建表,导入没有用。
然后我又用SELECT '中文'来试能不能正常输出,发现正常,接着又chcp 65001改cmd字符集, 发现原来正常的字不正常,不正常的还不正常{:301_973:}
我觉得是csv文件格式有的是GBK有的是UTF8,然后又用了一个新的csv(自写)试,发现无论是什么字符集都是乱码,而相同的内容在cmd上INSERT就正常
我感觉这一切是LOAD DATA的原因。
百度上找到了,语句中在表后面加上 CHARACTER SET utf8,于是导入成功了{:301_972:}真TM不易!!!

再补一句,表中的列可能也有自己的字符集,如果查表就会报ERROR 1267 (HY000)错误,要把列的字符集也要改变,只改变表的字符集没用(也是坑里爬出来的)

meowskz 发表于 2022-9-2 11:35

我好像是找了一台中文显示正常的机子,然后复制了环境变量然后就正常了

seawaycao 发表于 2022-9-2 12:11

谢谢分享!

coolcalf 发表于 2022-9-2 12:27

5.7的话,做一个10几M的绿色版,很容易。
前天论坛才有人发了8.0的绿色版,20M。

flyingdancex 发表于 2022-9-2 12:29

提醒一下别忘记了mysql中的utf8并不是真的UTF8哦

azusys 发表于 2022-9-2 13:24

呃呃呃 我上午搞了一上午sql server···{:1_937:}

jaybing926 发表于 2022-9-2 14:27

windows上搞mysql,不太舒服吆~~~

laserfox 发表于 2022-9-2 14:30

难道不应该是utf8mb4吗?:eee

BBoy蓝牙 发表于 2022-9-2 14:36

编码格式也有很大问题

flyingdancex 发表于 2022-9-2 17:00

laserfox 发表于 2022-9-2 14:30
难道不应该是utf8mb4吗?

utf8mb4{:1_921:}
页: [1] 2
查看完整版本: 关于MySQL 5.7乱码搞了一上午的收获