【发布时间】:2010-04-09 13:47:46
【问题描述】:
我认为表单中输入的值已被浏览器正确编码。
但是这个简单的测试文件“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 以与浏览器的 FORM (windows-1252) 相同的方式对所有内容进行编码???(转义功能不起作用,encodeURIComponent 也不起作用)?
或者 encodeURIComponent 是否进行了不必要的转换?
【问题讨论】:
标签: javascript urlencode url-encoding encodeuricomponent