欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

mysql中文乱码详细解决方案

程序员文章站 2022-05-01 21:45:20
...

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 最近要做毕业设计,以前用的数据库是oracle,基本上没出现过中文乱码的问题。可是毕业设计人在外地,带的笔记本比较垃圾,oracle根本带不起。一个eclipse加上一个火狐cpu就已经跑到90%了。所以最后决

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  最近要做毕业设计,以前用的数据库是oracle,基本上没出现过中文乱码的问题。可是毕业设计人在外地,带的笔记本比较垃圾,oracle根本带不起。一个eclipse加上一个火狐cpu就已经跑到90%了。所以最后决定用mysql数据库。前台用的是jsp,使用的编码格式是utf-8。

  不过mysql的中文乱码让我纠结了许久。经过一番查询,最终解决了。

  一:查看编程环境是否为utf-8

  方法:右键项目名称-属性 找到文本文件编码 选择utf-8.

  二:设置jsp页面的编码格式:

  方法:contentType="text/html; charset=utf-8"

  meta http-equiv="Content-Type" content="text/html; charset=utf-8"

  三:设置request和response的编码格式:

  方法:response.setContentType("text/html ;charset=utf-8");

  request.setCharacterEncoding("utf-8");

  四:编写过滤器

  五:连接数据库的方式改为:jdbc:mysql://localhost/databasename?useUnicode=true&characterEncoding=UTF-8

  经过以上5步,如果问题依然没有解决的话,则有可能是出现在mysql服务器上。

  数据库方面

  一:首先查看数据库字符集设置

  方法:set character_set_client=utf8;

  用这个方法可以看到几个字符集。

  然后用以下命令修改

  set character_set_client=utf8;

  set character_set_connection=utf8;

  set character_set_database=utf8;

  set character_set_results=utf8;

  set character_set_server=utf8;

  当然也可以在mysql的安装目录下,一般在c盘中的 my.ini下修改凡是看到字符集有关的都修改成utf8

  做到这步,基本上从数据库中取出的数据都是中文,但是还是有可能会出现问题,比如在用dos打开的时候,中文依然显示为乱码,而且不能在dos环境下用sql语句插入中文字符。

  这时,要把set character_set_results=utf8; 改为 set character_set_results=gbk;

  set character_set_client=utf8; 改为 set character_set_client=gbk;

  这样,基本就能解决了。

mysql中文乱码详细解决方案