我认为在表单中输入的值已由浏览器正确编码。
但是这个简单的测试文件“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”
有人可以解释一下吗?
我如何使用 Javascript 以与 borwser 的 FORM (windows-1252) 相同的方式对所有内容进行编码???(转义功能不起作用,encodeURIComponent 也不起作用)?
还是 encodeURIComponent 进行了不必要的转换?