JavaWeb篇——部署在Tomcat上的JavaWeb应用中文乱码问题
JavaWeb篇——部署在Tomcat上的JavaWeb应用中文乱码问题
关于中文乱码:
-
首先,在JSP页面上输出中文,请求页面后不出现乱码的前提是:
contentType="text/html以及charset="UTF-8",pageEncoding="UTF-8" 即:charset 和pageEncoding的编码要保持一致,通常建议取值为UTF-8
-
其次,服务器在接收请求时使用的默认编码为ISO-8859-1
也就是说客户端发送过来的数据无论是UTF-8还是GBK,服务器都认为是ISO-8859-1 除此之外还需保证浏览器的显示的字符编码也和请求的JSP页面的编码一致,建议使用谷歌浏览器(默认编码为UTF-8)
-
补充说明:
-
对于POST 请求:只要在获取请求信息之前,在调用request的getParameter或
getReader等方法之前,调用request.setCharacterEncoding("UTF-8")即可 -
对于GET请求:前面的方式无效。可在tomcat的server.xml为Connector节点添加
useBodyEncodingForURI="true"属性解决,代码如下:
<Connector connectionTimeout= "20000" port="8989" protocol= "HTTP/1.1" redirectPort= "8443" useBodyEncoding="true" />
-
---学习记录----