关于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)错误,要把列的字符集也要改变,只改变表的字符集没用(也是坑里爬出来的) 我好像是找了一台中文显示正常的机子,然后复制了环境变量然后就正常了 谢谢分享! 5.7的话,做一个10几M的绿色版,很容易。
前天论坛才有人发了8.0的绿色版,20M。 提醒一下别忘记了mysql中的utf8并不是真的UTF8哦 呃呃呃 我上午搞了一上午sql server···{:1_937:} windows上搞mysql,不太舒服吆~~~ 难道不应该是utf8mb4吗?:eee 编码格式也有很大问题 laserfox 发表于 2022-9-2 14:30
难道不应该是utf8mb4吗?
utf8mb4{:1_921:}
页:
[1]
2