中文乱码问题

来源:互联网 发布:php mvc理解 编辑:程序博客网 时间:2024/06/03 18:45

中文乱码问题及解决方法

在页面中出现乱码,是由于字符编码格式对中文的支持所导致的,或者是入库数据和出库数据编码格式不一致导致的。
当前使用Tomcat 7.0.82

字符编码的种类

常见的字符编码对中文的支持:

编码格式 收录的字符 iso-8859-1 不支持中文 gbk2312 常用的简体汉字 gbk 简体汉字和繁体汉字 utf-8 所有国家需要的字符

JSP页面设置编码支持中文

为了使JSP页面很好的支持中文,在Jsp页面设置字符编码格式为:charset=”UTF-8” ,页面也设置为其他支持中文格式的编码。

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

HTML页面设置编码支持中文

为了使HTML页面很好的支持中文,在Jsp页面设置字符编码格式为:charset=”UTF-8”

<META http-equiv=Content-Type content="text/html;charset=utf-8">

get请求乱码问题解决


get请求由于参数是通过URL传递的。当保证获取数据页面和接受数据页面格式为utf-8时。

get请求解决乱码治标的方法

由于Tomcat7默认的iso-8859-1的编码,要将iso-8859-1编码格式转换为utf-8的格式

 String str = request.getParameter("user"); String user = new String(str.getBytes("iso-8859-1"),"utf-8");

get请求解决乱码治本的方法

直接通过Tomcat目录下/conf/server.xml配置文件来解决。

<!--添加URIEncoding="utf-8" 来解决get请求乱码问题 --> <Connector port="8080" protocol="HTTP/1.1"               connectionTimeout="20000"               redirectPort="8443" URIEncoding="utf-8"/>

注意: Tomcat7默认的iso-8859-1的编码,Tomcat8默认的是utf-8的编码,当Tomcat8版本时就可以不设置。

post请求乱码问题解决

当post请求时,会将jsp转换为servlet文件,所以就是相当于设置servlet的请求和响应的编码格式。
JSP文件的执行流程可以参考:http://blog.csdn.net/zx6571269/article/details/78462985

  1. 设置tomcat编码格式,与get请求设置一样
  2. 当接受请求时设置resquest编码格式

request.setCharacterEncoding(“utf-8”);

  1. 当响应时设置response编码格式

response.setCharacterEncoding(“utf-8”);

原创粉丝点击