相信大家在开发初期遇到中文乱码问题一定是一头雾水,不是数据库乱码了就是页面乱码了或者传值时乱码。其实解决乱码的途径很简单,就是统一编码与解码的类型,我把自己遇到的乱码问题整理出来,希望能够对大家有用。

首先需要对ide下的编码做统一,我使用的是idea,在页面下面如图所示都有文件编码类型,选择utf-8: 

配置完后,需要对idea的全局编码也进行配置,在idea的配置中进行设置,Preferences中输入encoding,然后进行如下配置 

配置完后,如果是jsp页面,那么也需要在jsp页面中统一添加如下代码:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

配置完上述配置后,一般出现乱码情况也只有我们在传递数据的时候编码与解码方法不一致,我遇到的有下面两种,数据库与页面间传值。

数据库中文乱码意思是本来在我们页面中的中文是显示正确的,但是存入数据库时,要么写入sql时出现了乱码,要么存入了数据库后变成了乱码。有以下几点需要注意: 
1.在连接数据库时,在jdbc_url中添加useUnicode=true&characterEncoding=utf8,这样做指定了字符的编码与解码的格式。

jdbc:mysql://localhost:3307/dbbasename?useUnicode=true&characterEncoding=utf8

在需要向数据库存入数据时,会先用UTF-8格式将数据解码成字节码,然后再将解码后的字节码重新使用GBK编码存放到数据库中。 
在取数据时,数据库会先将数据库中的数据按GBK格式解码成字节码,然后再将解码后的字节码重新按UTF-8格式编码数据,返回给客户端。

数据库也需要进行相应的设置,我们通过以下语句来查看我们数据库的编码方式:

show variables like "%char%"; 

一般是需要结果如下图所示: 

如果不对,可以使用set names utf8语句来配置。 
在配置完数据库的编码格式后,我们在创建数据库与数据表的时候最好也统一一下格式,加入如下图的语句: 

到这里数据库就配置完成,一般情况下不会再出现中文乱码情况。

下面说下页面间传值,在前台的表单数据,传输到后台是,利用request.getParameter()语句取值时,发现中文乱码,此时有两种情况,一种是post提交方式,可以采用spring的字符编码过滤器,在 
web.xml中添加以下配置:

 <!-- 配置Spring字符编码过滤器 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

还有一种是get方式出现中文乱码,此时上种配置spring字符集的方法就没有用了,需要在tomcat文件夹下的conf/servler.xml中设置,找到一下代码,在最后加入URIEncoding=”UTF-8”

<Connector port="8080"
protocol="HTTP/1.1"  connectionTimeout="20000"  
redirectPort="8443"/>
改成:
<Connector port="8080"
protocol="HTTP/1.1"  connectionTimeout="20000"  
redirectPort="8443"  
URIEncoding="UTF-8"/>

上述为我在开发过程中遇到的中文乱码问题,希望在看了这篇文章后能够解决大家的中文乱码问题。

SpringMVC开发过程中的中文乱码问题的更多相关文章

  1. springmvc项目中的中文乱码的解决及未生效解决

    情景: springmvc项目中,在控制台输出时中文乱码,在web网页中正常. 解决方法: 在web.xml中添加如下代码: <!-- 中文乱码解决 --> <filter> ...

  2. 解决SpringMVC的@ResponseBody返回中文乱码

    SpringMVC的@ResponseBody返回中文乱码的原因是SpringMVC默认处理的字符集是ISO-8859-1,在Spring的org.springframework.http.conve ...

  3. MAC下 mysql不能插入中文和中文乱码的问题总结

    MAC下 mysql不能插入中文和中文乱码的问题总结 前言 本文中所提到的问题解决方案,都是基于mac环境下的,但其他环境,比如windows应该也适用. 问题描述 本文解决下边两个问题: 往mysq ...

  4. 分布式监控系统Zabbix-3.0.3-完整安装记录(4)-解决zabbix监控图中出现中文乱码问题

    之前部署了Zabbix-3.0.3监控系统,在安装数据库时已经将zabbix库设置了utf-8字符. 首先确定zabbix开启了中文支持功能:登录到zabbix服务器的数据目录下(前面部署的zabbi ...

  5. zabbix解决监控图中出现中文乱码问题

    首先确定zabbix开启了中文支持功能:登录到zabbix服务器的数据目录下(前面部署的zabbix数据目录是/data/www/zabbix),打开 locales.inc.php文件[root@Z ...

  6. Java Web 开发中的中文乱码与解决方式

    乱码产生的原因 不管是request乱码还是response乱码,其实都是由于客户端(浏览器)跟服务器端采用的编码格式不一致造成的.以request乱码为例:浏览器向服务器发送请求,因为浏览器与服务器 ...

  7. jquery.ajax的url中传递中文乱码问题的解决方法

    jquery.ajax的url中传递中文乱码问题的解决方法   JQuery JQuery默认的contentType:application/x-www-form-urlencoded 这才是JQu ...

  8. 解决loadrunner 脚本和replaylog中的中文乱码问题

    解决loadrunner 脚本和replaylog中的中文乱码问题 解决这个问题必须认识到一个事实就是,loadrunner和测试服务器交换数据使用的是utf8格式,但是展现在replaylog中是使 ...

  9. 解决URL地址中的中文乱码问题的办法

    解决URL地址中的中文乱码问题的办法 引言: 在Restful类的服务设计中,经常会碰到需要在URL地址中使用中文作为的参数的情况,这种情况下,一般都需要正确的设置和编码中文字符信息.乱码问题就此产生 ...

随机推荐

  1. Android内存之VSS/RSS/PSS/USS

    Terms VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存) PSS - P ...

  2. BZOJ 3631: [JLOI2014]松鼠的新家( 树链剖分 )

    裸树链剖分... ------------------------------------------------------------------- #include<bits/stdc++ ...

  3. 快捷键accesskey

    <!DOCTYPE html> <html> <body> <a href="http://www.w3school.com.cn/html/&qu ...

  4. Mockito简介(转)

    Mockito 是目前 java 单测中使用比较流行的 mock 工具.其他还有 EasyMock,JMock,MockCreator,Mockrunner,MockMaker 及 PowerMock ...

  5. Introduction to the Build Lifecycle

    Introduction to the Build Lifecycle Table Of Contents Build Lifecycle Basics Setting Up Your Project ...

  6. bottle-session 0.2 : Python Package Index

    bottle-session 0.2 : Python Package Index bottle-session 0.2 Download bottle-session-0.2.tar.gz Redi ...

  7. clearcase常用命令

    版本控制工具学习 http://www.itpxpj.com/course.do?method=getAllCourseInFront&classTypeId=21 1.[ClearCase] ...

  8. android的单元测试

    1.新建android Test project 2. 选择针对测试的项目 3.新建类继承AndroidTestCase即可: package com.howlaa.sms.test; import ...

  9. UVA 2039 Pets(网络流)

    Problem Description Are you interested in pets? There is a very famous pets shop in the center of th ...

  10. 基于visual Studio2013解决C语言竞赛题之1080填运算符

        题目 解决代码及点评 /************************************************************************/ /* ...