xyang
posts - 19, comments - 1, trackbacks - 0, articles - 0
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
jsp乱码问题研究
Posted on 2006-09-28 09:47
xyang
阅读(374)
评论(0)
编辑
收藏
ie默认根据服务器传回来的contentType头进行显示(忽略mata标签),对于html这种静态文件,由于没有contentType头则根据<meta http-equiv="Content-Type" content="text/html; charset=GBK" />标签中的编码类型进行显示.
pageEncoding指定的是jsp编译时的编码格式,必须对应于jsp文件内容的编码,否则是乱码
默认pageEncoding为:ISO-8859-1,如果不指定contentType,输出对应于pageEncoding的编码方式
也就是如果都不设置的话,默认输出ISO-8859-1,肯定是乱码(保存为unicode即可正常显示).
response.setCharacterEncoding("GBK")
<%@ page contentType="text/html; charset=UTF-8">
这两句作用相同,设置输出的编码类型,但response.setCharacterEncoding("GBK")优先级高
通过 get/post 方式从 ie中发送汉字,发送编码方式由Content-Type决定,request.getParameter("XX")得到的字符串是用ISO-8859-1表示的,所以必须在取值前用HttpServeletRequest.setCharacterEncoding 设置想得到的编码类型,或是在<Connector>中添加URIEncoding="GBK"属性,来获取正确的编码类型,但是,在执行setCharacterEncoding()之前,不能执行任何getParameter()。java doc上说明:This method must be called prior to reading request parameters or reading input using getReader()。而且,该指定只对POST方法有效,对GET方法无效。分析原因,应该是在执行第一个getParameter()的时候, java将会按照编码分析所有的提交内容,而后续的getParameter()不再进行分析,所以setCharacterEncoding()无效。 而对于GET方法提交表单是,提交的内容在URL中,一开始就已经按照编码分析所有的提交内容,setCharacterEncoding()自然就无效。
<%
@ page contentType
=
"
text/html; charset=UTF-8
"
pageEncoding
=
"
UTF-8
"
%>
<%
request.setCharacterEncoding(
"
UTF-8
"
);
response.setCharacterEncoding(
"
UTF-8
"
);
%>
<
html
>
<
head
>
<
title
>
test
</
title
>
<
meta
http-equiv
="Content-Type"
content
="text/html; charset=UTF-8"
/>
</
head
>
<
body
>
=
<%
=
new
String
(request.getParameter(
"
foo
"
).getBytes(
"
iso8859-1
"
),
"
UTF-8
"
)
%>
=
<
form
action
=""
method
="get"
>
foo =
<
input
type
="text"
name
="foo"
value
="${param["
foo"]}"
>
<
input
type
="submit"
>
</
form
>
tomcat:
<
Connector
port
="8080"
URIEncoding
="GBK"
/>
</
body
>
</
html
>
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
Powered by:
BlogJava
Copyright © xyang
日历
<
2006年9月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔档案
2006年10月 (5)
2006年9月 (14)
常用资料
unicode中文
vqq
正则
搜索
最新评论
1. re: 使用xmlhttp和Java session监听改善站内消息系统( 转)
好!!!!
--生活快乐
阅读排行榜
1. 使用xmlhttp和Java session监听改善站内消息系统( 转)(1409)
2. HashMap与Hashtable的区别(913)
3. 算法 常用(757)
4. 字符编码在编程中的问题(669)
5. Open Source Portal Servers Written in Java (662)
评论排行榜
1. 使用xmlhttp和Java session监听改善站内消息系统( 转)(1)
2. 计算机常用英语(0)
3. HashMap与Hashtable的区别(0)
4. test code(0)
5. 字符编码(0)