MySQL社区
标题:
解决乱码过程中设置字符集后自动还原了,求解~~
[打印本页]
作者:
hugh.tian
时间:
2014-3-18 16:42
标题:
解决乱码过程中设置字符集后自动还原了,求解~~
先说下乱码的问题,我使用的是set
character_set...=utf8 的方式更改的字符集,我在Linux和navicat上均尝试更改字符集,但都无效。
最后通过更改my.cnf文件才将乱码问题解决。
Mysql版本:5.1
现在说下我不理解的地方:
我进入Linux,打开Mysql控制台,查看mysql字符集后,发现所有的字符集都是默认的‘
latin1
’。
于是使用
set
character_set...=utf8 的方式去更改字符集,更改完后再次查询字符集,一切正常,全都已经改为utf8了。
接着退出控制台,运行程序往数据库里插入数据,结果还是乱码...
我就奇怪了,我再次去查看mysql的字符集。然后神奇的事情发生了,字符集居然全部都还原了,还是‘
latin1
’
我还在navicat上试着修改字符集,修改后查询,一切正常全都变为了utf8。但是往数据库里插入数据依然是乱码。
我想这两个地方设置都无法生效,应该都是同一个问题导致的。
请教各位大大,有没有人知道这是为什么?是不是某个地方有什么默认配置
作者:
kider
时间:
2014-3-18 17:10
用set names utf8;
另外社区中搜索下“乱码”或“字符集的”帖子参考下
作者:
yoon
时间:
2014-3-18 17:42
同一条SQL,用navicat就特别慢,用SQLyog工具就很快。
此后几乎不用navicat,不知道是网络还是工具的问题。
作者:
kider
时间:
2014-3-19 09:28
yoon 发表于 2014-3-18 17:42
同一条SQL,用navicat就特别慢,用SQLyog工具就很快。
此后几乎不用navicat,不知道是网络还是工具的问 ...
这种状况,只能解释为工具问题了。以前用ems工具也在大数据量的情况下就挺慢。
可能就是有些工具做的不够好和优化吧
作者:
mysqler
时间:
2014-3-19 14:06
本帖最后由 mysqler 于 2014-3-19 14:08 编辑
可能是,你之前的数据是latin1,然后你改变字符集后,将latin字符集转化成utf8,系统是找不到匹配的,所以以前的数据都会乱码,如果是php开发的话,尽量少用set names来设置,会存在注入的问题
建议楼主截图,会一目了然
欢迎光临 MySQL社区 (http://www.mysqlpub.com/)
Powered by Discuz! X3.2