使用
JavaScript 脚本的 XMLHTTPRequest 对象发送请求。
(
1)在浏览器地址栏中直接输入 URL
当
URL 中包含非 ASCII 码字符时,Firefox 会自动将这些字符进行转义,转义使用的
“
编码由浏览器的语言版本决定。例 如,
http://www.baidu.com/s?wd=
”
中文 将会转义
为
http://www.baidu.com/s?wd=%D6%D0%CE %C4。
Firefox 也 提 供 了 使 用 UTF-8 进 行 URL 编 码 的 选 项 。 在 地 址 栏 中 输 入
“about:config”
“
,并按回车键打开配置页面,在过滤器中输 入
network.standard-
url.encode-utf8”以定位到该选项,如图 6-1 所示。将该选项的值修改为 true,以使
Firefox 始 终 用 UTF-8 对 URL 进 行 转 义 。 这 样 , 上 述 URL 将 转 义 为
http://www.baidu.com/s?wd=%E4%B8%AD
%E6%96%87
。
默认情况下,中文
Windows 平台上的 IE 浏览器将 URL
“ ”
分为两个部分, ? 之前的
部分
URL 使用 UTF8
“ ”
进行转义,而 ? 之后的参数部分, 则不进行转义而直接使用
GBK
编码发送。例如
URL“http://localhost/中文.jsp?test=
”
“
”
中文 ,前一个 中文 将按 照
UTF8
“
编码的转义形式
%E4%B8%AD%E6%96%87”
“
”
发送,而参数部分的 中文 则直接
以
GBK 编码发送,因此,最终发送的 URL 如图 6-2 所示。
在
IE
“
的
Internet
” “
”
“
选项 的 高级 选项卡页中有一个选项 总是以
UTF-8 发送 URL”,
在缺省情况下该选项是选中的。如果去掉这个选项,
IE 将会以系统当前的代码页来对 URL
进行编码。在中文
Windows 中整个 URL 都将以 GBK 编码发送,如图 6-3 所示。
(
2
“
”
)在页面中通过单击 提交 按钮来提交表单
“
在表单中属性
method”用来指定提交表单时所使用的 HTTP 请求方法,可以选择
Post 或者 Get。用户不指定时,默认采用 Get 方法。而表单所提交内容采用的编码则由页
面当前的编码决定。例如,在一个
JSP 中包含以下表单代码:
===formencoding.jsp====
<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>
<form action="formencoding.jsp" >
<input type="text" name="中文" ></input>
<input type="submit"/>
</form>
在
IE 或 Firefox
“
”
“
”
“
”
浏览器中打开该页面,在 中文 输入框中填入 中文 并单击 提交 按钮,
会产生一个
Get 请求,所使用的 URL 为:
http://localhost:8080/jsbook/formencoding.jsp?%D6%D0%CE%C4=
%D6%D0%CE%C4
即使用
GBK 编码对 URL 进行转义。
如果将该页面的
contentType 重置为 contentType="text/html; charset=UTF-
8",则该表单所产生的 URL 为:
http://localhost:8080/jsbook/formencoding.jsp? %E4%B8%AD
%E6%96%87= %E4%B8%AD%E6%96%87%
即使用
UTF-8 编码对 URL 进行
转义。
如果表单使用
Post 方法,则提交的参数将放在请求的消息体中,而使用的编码方式仍