JSP 页面乱码
解决中文乱码问题,主要是解决编码统一的问题,JSP页面默认为ISO-8859-1编码,每个项目或者每个文件里都可以独立的设置text file encoding 编码方式。
我的默认 JSP 文件
都设置为了 UTF-8
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
</body>
</html>
JSP页面的处理
不同的提交方式,下面的语句不同的效果,对于 POST 方式,下面的语句有效,对GET方式无效
<%request.setCharacterEncoding("utf-8"); %>
GET 方式获取数据,可以解决中文乱码问题
String name = new String(request.getParameter("name").getBytes("iso-8859-1"), "utf-8")
网上的方法都是在 Tomcat 安装目录里的 server.xml的 <Connector..../>
节点,添加下面的语句
URIEncoding="UTF-8"
或者
useBodyEncodingForURI="true" URIEncoding="UTF-8"
但是我的 JSP 页面就是乱码。
后来我在eclipse 里看到一个 Server 项目,是 Tomcat服务器的配置,里面有 server.xml 文件,我去改了改,好像有效。
Tomcat server.xml 里的配置
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" useBodyEncodingForURI="true" URIEncoding="UTF-8"/>
GET 和 POST 提交方式
JSP 表单处理:http://www.runoob.com/jsp/jsp-form-processing.html
GET 方法
请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的:
明文方式
/test/demo_form.asp?name1=value1&name2=value2
有关 GET 请求的其他一些注释:
GET 请求可被缓存
GET 请求保留在浏览器历史记录中
GET 请求可被收藏为书签
GET 请求不应在处理敏感数据时使用
GET 请求有长度限制
GET 请求只应当用于取回数据
POST 方法
请注意,查询字符串(名称/值对)是在 POST 请求的 HTTP 消息主体中发送的:
POST /test/demo_form.asp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
有关 POST 请求的其他一些注释:
POST 请求不会被缓存
POST 请求不会保留在浏览器历史记录中
POST 不能被收藏为书签
POST 请求对数据长度没有要求