中文乱码问题

Posted 虚极静笃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了中文乱码问题相关的知识,希望对你有一定的参考价值。

1). 在 JSP 页面上输入中文, 请求页面后不出现乱码: 保证 contentType="text/html; charset=UTF-8", 

pageEncoding="UTF-8" charset 和 pageEncoding 的编码一致, 且都支持中文. 通常建议取值为UTF-8
还需保证浏览器显示的字符编码也和请求的 JSP 页面的编码一致.



2). 获取中文参数值: 默认参数在传输过程中使用的编码为 ISO-8859-1

①. 对于 POST 请求: 只要在获取请求信息之前(在调用 request.getParameter 或者是 request.getReader 等),
调用 request.setCharacterEncoding("UTF-8") 即可.

下图在a.jsp:

下图在hello.jsp:

 

 打开浏览器发现乱码:

 在hello.jsp中加入:

 

就可以了(这个方法必须在读取请求之前被调用,否则无效),然而这种方法对GET请求无效。

 

 

 

②. 对于 GET 请求: 前面的方式对于 GET 无效.

 

在hello.jsp中

 

可以通过修改 Tomcat 的 server.xml 文件的方式.

参照 http://localhost:8989/docs/config/index.html 文档的 useBodyEncodingForURI 属性.
为 Connector 节点添加 useBodyEncodingForURI="true" 属性即可.

<Connector connectionTimeout="20000" port="8989" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/>

然后也要在eclipse里面的server.xml修改上面这行才能生效

以上是关于中文乱码问题的主要内容,如果未能解决你的问题,请参考以下文章

linux解决中文乱码问题

servlet处理中文乱码问题

解决获取url上中文乱码问题

Mysql存储过程中文乱码问题

怎样解决SQL数据库中文乱码问题

解决各种tomcat中文乱码问题