0

我认为在表单中输入的值已由浏览器正确编码。

但是这个简单的测试文件“test_get_vs_encodeuri.html”表明它不是真的:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
   <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
   <title></title>
</head><body>

<form id="test" action="test_get_vs_encodeuri.html" method="GET" onsubmit="alert(encodeURIComponent(this.one.value));">
   <input name="one" type="text" value="Euro-€">
   <input type="submit" value="SUBMIT">
</form>

</body></html>

点击提交按钮时:

encodeURICompenent 将输入值编码为“Euro-%E2%82%AC”

而浏览器进入 GET 查询只写了一个简单的“Euro-%80”

  1. 有人可以解释一下吗?

  2. 我如何使用 Javascript 以与 borwser 的 FORM (windows-1252) 相同的方式对所有内容进行编码???(转义功能不起作用,encodeURIComponent 也不起作用)?

还是 encodeURIComponent 进行了不必要的转换?

4

2 回答 2

5
于 2010-04-10T14:30:18.960 回答
0
于 2010-04-10T13:56:40.443 回答