Tomcat中文乱码问题

Web应用乱码由来:

1.Tomcat默认使用字符集ISO-8859-1,属于西欧字符集
2.解决乱码的核心思路是将ISO-8859-1转换为UTF-8
3.Servlet中请求与响应都需要设置UTF-8字符集


如何处理请求体中的中文乱码问题:

解决方法:由于doGet方法没有请求体的,所以需要将request.setCharacterEncoding(“UTF-8”)写到doPost()方法中。

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");//请求体中的字符集设为“UTF-8”,该方法应写在post方法的第一行。
}

将请求体中的字符集转换为utf-8,因为只有post方法获取的请求有请求体,所以只适用于post方法;该方法应写在post方法的第一行。


解决Get请求的中文乱码:

对于Tomcat8.x的版本,默认get请求发送中文就是UTF-8,不需要修改字符集。
对于URIEncoding=“UTF-8″属性只需要在Tomcat7(包含)以前的版本中的servet.xml中Connector配置,8以上无需配置:

路径 -> Tomcat -> conf -> server.xml
大概在第63行中:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
添加属性:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>

解决响应中文乱码:

响应中出现乱码问题:
响应的输出不区分get或post
解决办法:

response.setContextType("text/html;charset=utf-8");(不区分post和get方法)

人已赞赏
网络教程

英语音标记忆顺口溜!48个音标快速记忆口诀!

2019-9-13 4:47:54

Python3

可迭代对象,迭代器,生成器的区别和关系

2019-10-9 7:13:33

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索