MySql中插入中文显示的是乱码
我在eclipse中写的sql文件,执行之后在数据库中显示的就是乱码。已经设置了charset为utf-8,可是依旧是乱码,网上也搜到很多解决的办法,可是能使试的都试了,...
我在eclipse中写的sql文件,执行之后在数据库中显示的就是乱码。已经设置了charset为utf-8,可是依旧是乱码,网上也搜到很多解决的办法,可是能使试的都试了,还是显示乱码。这究竟是怎么回事,哪位大师有一针见血的解决方法啊
展开
5个回答
展开全部
段都有编码设置.
出现乱码肯定是你现在用的编码混乱造成的
解决办法:
第一步 先改数据库编码
先修改你的数据库,如果你页面用的是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对于编码的支持太差劲了,很难控制具体的编码,所以最好也不要用
出现乱码肯定是你现在用的编码混乱造成的
解决办法:
第一步 先改数据库编码
先修改你的数据库,如果你页面用的是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数据库不仅每个库有编码设置甚至是每个字段都有编码设置. 出现乱码肯定是content=
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你先执行 show variables like 'character%'; 显示据库的编码方式
如果有不是 utf8的地方都如下处理:
set global character_set_database=uft8;
set global character_set_server=utf8;
set global character_set_connection=utf8;
set global character_set_client=utf8;
如果有不是 utf8的地方都如下处理:
set global character_set_database=uft8;
set global character_set_server=utf8;
set global character_set_connection=utf8;
set global character_set_client=utf8;
追问
只有filesystem的是binary 。其余的都是utf8 啊,可是还是还是不行啊,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
。你可以右键单击你的工程文件->properites->text file encoding选择和和你数据库一样的编码就可以 了。
追问
试了,乱码依旧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在所有执行mysql_query函数做数据库插入删除查询之前 执行下面三个命令:
mysql_query('set character_set_client = utf8');
mysql_query('set character_set_connection = GBK');
mysql_query('set character_set_results = utf8');
而不是以前的 set names utf8命令创建数据库和创建表之时指定编码为gbk ,指定 整理为 gbk_chinese_ci;
CREATE DATABASE `test` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
这样你的网站永远 都不会有乱码问题了而且如果有一个字段是 username char(20),这样就可以插入20个汉字,而不是20/2或者 20/3之类如果插入的是20个汉字, select length(username)查看 会返回 40 ,也就是说,mysql 实际是用40个字符存储的但是我们不用去管他实际的存储,你想要限制多少就直接是指定char()多少就可以了,汉字和英文同样对待。
gb2312_chinese_CI : 只支持简体中文
gb2312_BIN :而gb2312_bin可以说是gb2312_chinese_ci的一个子集,
而且gb2312_BIN是二进制存储.区分大小写
mysql_query('set character_set_client = utf8');
mysql_query('set character_set_connection = GBK');
mysql_query('set character_set_results = utf8');
而不是以前的 set names utf8命令创建数据库和创建表之时指定编码为gbk ,指定 整理为 gbk_chinese_ci;
CREATE DATABASE `test` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
这样你的网站永远 都不会有乱码问题了而且如果有一个字段是 username char(20),这样就可以插入20个汉字,而不是20/2或者 20/3之类如果插入的是20个汉字, select length(username)查看 会返回 40 ,也就是说,mysql 实际是用40个字符存储的但是我们不用去管他实际的存储,你想要限制多少就直接是指定char()多少就可以了,汉字和英文同样对待。
gb2312_chinese_CI : 只支持简体中文
gb2312_BIN :而gb2312_bin可以说是gb2312_chinese_ci的一个子集,
而且gb2312_BIN是二进制存储.区分大小写
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询