其实解决这个问题就是要保证整个数据插入过程当中字符编码要一致。要有三个方面注意的,java
第一个是msyl数据库,就是保证mysql的数据库以及表都要保证编码是一致的好比都是UTF-8,mysql
第二个是,eclipse这边也要保证项目,工做空间和java文件的编码格式也是UTF-8,web
第四个是,jsp页面传值过程当中可能乱码,<%request.setCharacterEncoding("UTF-8"); %>,防止页面传值的时候乱码————————————————————————————————————————————------spring
一、针对Post方式提交的请求若是出现乱码,能够每次在request解析数据时设置编码格式:sql
request.setCharacterEncoding("utf-8");数据库
也可使用编码过滤器来解决,最经常使用的方法是使用spring提供的编码过滤器:tomcat
在Web.xml中增长以下配置(要注意的是它的位置必定要是第一个执行的过滤器):服务器
<filter>
<filter-name>charsetFilter</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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>mybatis
该过滤器要作的其实就是强制为全部请求和响应设置编码格式:eclipse
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
二、针对Get方式的乱码问题,因为参数是经过URL传递的,因此上面经过request设置的编码格式是不起做用的,此时能够在每次发生请求以前对URL进行编码:例如:Location.href="/encodeURI"("http://localhost/test/s?name=中文&sex=女");
固然也有更简便的方法,那就是在服务器端配置URL编码格式:
修改tomcat的配置文件server.xml:
<Connector URIEncoding="UTF-8"
port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
connectionTimeout="20000" disableUploadTimeout="true" />
只需增长 URIEncoding="UTF-8" 这一句,而后重启tomcat便可。