Как исправить эту проблему кодировки символов? - PullRequest
2 голосов
/ 07 июля 2011

Страница отправки выглядит следующим образом:

<!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, хотя он хорошо отображается в строке запроса в адресной строке браузера.

1 Ответ

1 голос
/ 07 июля 2011

Значение должно быть закодировано в URI перед формированием URL:

window.location = 'receive.html?' + encodeURIComponent(chinese);

Теперь это не может быть все , что вам нужно сделать, потому что вполне возможно, что сервер может вызывать проблемы, но вы, как правило, хотите делать это в любом случае с вводом, предоставленным непосредственно из текстового поля.

...