发送页面如下:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<script>
function send() {
var chinese = document.getElementById('chinese').value;
window.location = 'receive.html?' + chinese;
}
</script>
</head>
<body>
<input id="chinese" type="text" name="chinese" value="" />
<button onclick="send()">Submit</button>
</body>
</html>
接收页面如下:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<script>
window.onload = function () {
var chinese = location.search;
document.getElementById('chinese').value = chinese;
}
</script>
</head>
<body>
<input id="chinese" type="text" name="chinese" value="" />
</body>
</html>
问题是接收页面没有正确接收/显示中文字符。例如,它显示首页
而不是?%E9%A6%96%E9%A1%B5
,但它在浏览器地址栏的查询字符串中显示良好。
答案 0 :(得分:1)
在形成URL之前,应该对URI进行URI编码:
window.location = 'receive.html?' + encodeURIComponent(chinese);
现在可能不是所有你必须这样做,因为服务器可能会导致问题,但你通常想要直接从文本字段提供输入来进行编码。