解决mysql无法插入中文数据及插入后显示乱码的问题【亲测 图文解说!】,mysql中文
(1)废话不多说就是使用mysql数据库的时候无法输入中文,可以输入中文后显示的又是乱码!!
(2)不说了!开始解决问题!
第一步:找到安装mysql的目录找到 my.ini 文件;
第二步:使用记事本打开my.ini文件 ,
找到这个地方 看看default-character-set 是不是 utf8不是的话 改为utf8即可!(以前的版本可能没有这句话 直接加上就好了!)
# MySQL client library initialization. [client] port=3306 [mysql] default-character-set=utf8
第三步:在mysql数据库cmd中输入:show variables like'%char%';
查看数据库的编码格式!这里就显示图片了等会显示图片是改好的!
第四步:改变原有数据库的编码方式:
set character_set_database=utf8; set character_set_server=utf8; set character_set_client=gbk; set character_set_connection=gbk;
第五步:改变后的编码方式:
第六步:插入中文数据试试!ok!是可以插进去的!
第七步:解决select * from table时显示第一张图所示的乱码
把上面的编码方式改变! set character_set_results=gbk; 就可以正常显示!
(3)上边已经详细介绍了解决方法!
但是我们需要注意的是有时我们在加入数据的时候还是要按照“第四步”“第七步”的方式解决输入和显示乱码的问题!
值得注意的是:我们在使用myeclipse的时候,提供的DBBrowser不会出现乱码的时候!
ok!祝你成功!
段都有编码设置.
出现乱码肯定是你现在用的编码混乱造成的
解决办法:
第一步 先改数据库编码
先修改你的数据库,如果你页面用的是UTF-8编码那么你数据库内的编码也需要设置为UTF-8,每个字段都需要设置.要保持内外一致,你可以用Navicat for MySQL工具,这个工具里能看得很清除,如果表\字段很多的话你可以导出SQL语句,然后把SQL语句中相应的编码替换例如gb2312替换成utf8,然后再重新创建一个库,创建的时候字符集选择utf8的再把SQL语句导入,检查一下所有的编码都是utf8的就OK
第二步 程序修改
1\读库的时候
mysql_query("set names utf8");
2\每个页面头部加上一句
header("content-Type: text/html; charset=utf-8");
3\检查所有的编码声明是否正确
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
4\检查页面中现有文字所使用的编码是否正确,推荐你使用editplus在右下角会有显示UTF-8或者ANSI,要保证所有带有中文的文件打开后显示的编码集是UTF-8,如果不是的话可以将所有文件打开然后从菜单选择"文档"-"文件编码"-"文件编码(多文件)",然后选择所有的文件点确定,更改编码为UTF-8确定!
OK到此位置大功告成,所有的编码一致,绝对不会再出现乱码了,多说一句.对于MYSQL操作工具的选择本人只推荐两款,一是大家都熟悉的PHPMYADMIN 再就是Navicat for MySQL也有很多人都在用.至于MYSQL-font实在有些垃圾,有时显示出来的数据库结构和实际的都有差别....不敢苟同,另外MYSQL官方出的SQLyog对于编码的支持太差劲了,很难控制具体的编码,所以最好也不要用
① 首先把MySQL的服务停掉 在运行窗口输入:net stop mysql
② 把服务器和客户端的字符集改成自己想用的字符集:GB2312或是utf8等……
具体操作为:打开mysql安装目录下的myini.tet;
找到default-character-set,将其改为自己想用的字符集:GB2312或是utf8等……,要注意的是这里有两个default-character-set,用ctrl+f定位在文件最前面输入default就会找到,都要改过来;
③ 重启MySQL服务器,在运行窗口输入:net start mysql
④ 最重要的是一点是,到这里我们已经能够解决乱码问题了,可问题是我们依然还会出现乱码问题,这是因为我们现在的表被创建的时候用的是默认的字符集(latin1),所以这时候我们要把表删除,然后重建就可以了