关于mysql数据库中文乱码的一些总结
2014-05-15 16:03
225 查看
现在的项目数据库使用的是mysql,在window开发环境和linux生产环境都出现过乱码问题,下面主要总结下本人碰到的几次乱码问题:
1、win7下开发环境数据库乱码问题
在window下安装mysql时候,有一个步骤可以选在默认字符集,软件默认的是latin1,
若现在开发的项目是UTF-8,那么安装软件时候最好将此项设置为utf-8
由于是开发环境,我们也可以很方便的修改数据库字符集(由于本人项目工程字符集市UTF-8,所以下面均以UTF-8为例说明)
执行下面两个命令,查看数据库字符集
SHOW VARIABLES LIKE 'character%';
SHOW VARIABLES LIKE 'collation_%';
若字符集不是UTF-8,则执行命令修改:SET character_set_client = utf8 ; (character_set_client 为mysql参数,修改所有不是utf8的参数)
具体的可参考文章:http://www.blogjava.net/wldandan/archive/2007/09/04/142669.html
本地J2EE项目在连接mysql时候,在配置tomcat时候,修改conf/context.xml
(注意url中加 ?useUnicode=true&characterEncoding=utf-8 )
2、linux下数据库乱码问题
由于是生产环境,且数据库下面已经有投产的项目的实例,所以运维人员不敢轻易更改数据库字符集参数(不评论运维的工作,呵呵。。。)
下面说明linux服务器mysql数据库的参数,参数值大多为latin1。
在新建数据库实例、表的时候都指定是utf-8,执行完建表语句和初始化sql后,数据库存储的是中文,前台web界面展示的是乱码;
web界面向数据库插入数据,数据库存储的是乱码,前台web界面显示的是中文
(项目的数据库连接处指定了编码格式,所以存取能正常对应上,即为把中文存入数据库,去除的仍然是中文)
解决方式:
在链接mysql数据库的时候,指定默认的字符集
mysql -u root -p --default-character=utf8
然后再使用source命了执行sql文件,此时前台界面显示的就是中文了
此处需要特别注意:
sql文件的编码格式也要与项目的编码格式一致(UTF-8),否则插入数据库的还是乱码
1、win7下开发环境数据库乱码问题
在window下安装mysql时候,有一个步骤可以选在默认字符集,软件默认的是latin1,
若现在开发的项目是UTF-8,那么安装软件时候最好将此项设置为utf-8
由于是开发环境,我们也可以很方便的修改数据库字符集(由于本人项目工程字符集市UTF-8,所以下面均以UTF-8为例说明)
执行下面两个命令,查看数据库字符集
SHOW VARIABLES LIKE 'character%';
SHOW VARIABLES LIKE 'collation_%';
若字符集不是UTF-8,则执行命令修改:SET character_set_client = utf8 ; (character_set_client 为mysql参数,修改所有不是utf8的参数)
具体的可参考文章:http://www.blogjava.net/wldandan/archive/2007/09/04/142669.html
本地J2EE项目在连接mysql时候,在配置tomcat时候,修改conf/context.xml
(注意url中加 ?useUnicode=true&characterEncoding=utf-8 )
<Resource validationQuery = "SELECT 1" testWhileIdle = "true" testOnBorrow = "true" name="jdbc/mydb" auth="Container" type="javax.sql.DataSource" driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql://192.168.19.23:3306/test?useUnicode=true&characterEncoding=utf-8" username="root" password="passwd" maxActive="100" maxIdle="30" maxWait="10000" />
2、linux下数据库乱码问题
由于是生产环境,且数据库下面已经有投产的项目的实例,所以运维人员不敢轻易更改数据库字符集参数(不评论运维的工作,呵呵。。。)
下面说明linux服务器mysql数据库的参数,参数值大多为latin1。
在新建数据库实例、表的时候都指定是utf-8,执行完建表语句和初始化sql后,数据库存储的是中文,前台web界面展示的是乱码;
web界面向数据库插入数据,数据库存储的是乱码,前台web界面显示的是中文
(项目的数据库连接处指定了编码格式,所以存取能正常对应上,即为把中文存入数据库,去除的仍然是中文)
解决方式:
在链接mysql数据库的时候,指定默认的字符集
mysql -u root -p --default-character=utf8
然后再使用source命了执行sql文件,此时前台界面显示的就是中文了
此处需要特别注意:
sql文件的编码格式也要与项目的编码格式一致(UTF-8),否则插入数据库的还是乱码
相关文章推荐
- 这是我们公司总结的一些关于中文乱码问题的一些解决方案和经验和大家分享!
- 这是我们公司总结的一些关于中文乱码问题的一些解决方案和经验和大家分享!
- 这是我们公司总结的一些关于中文乱码问题的一些解决方案和经验和大家分享!
- 这是我们公司总结的一些关于中文乱码问题的一些解决方案和经验和大家分享! .
- 这是我们公司总结的一些关于中文乱码问题的一些解决方案和经验和大家分享!
- 这是我们公司总结的一些关于中文乱码问题的一些解决方案和经验和大家分享!
- 这是我们公司总结的一些关于中文乱码问题的一些解决方案和经验和大家分享!
- 一些关于中文乱码问题的一些解决方案和经验和大家分享!
- 一些关于中文乱码问题的一些解决方案和经验
- 关于中文乱码问题的一些解决方案和经验
- 一些关于中文乱码问题的一些解决方案
- 关于解决中文乱码问题的总结
- 一些关于中文乱码问题的一些解决方案分类
- Java 关于中文乱码处理的经验总结
- 关于java乱码的一些总结
- 关于jsp页面之间传值的中文乱码总结
- 关于jsp页面之间传值的中文乱码总结
- 关于java中文乱码问题一些解决方案和经验
- 关于java中文乱码的总结
- 关于中文乱码问题的一些解决方案和经验