2011-07-07 3 views
2

La page d'envoi est la suivante:Comment résoudre ce problème d'encodage de caractères?

<!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> 

La page de réception est la suivante:

<!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> 

Le problème est que la page de réception ne reçoit/affiche pas correctement les caractères chinois. Par exemple, au lieu de 首页, il affiche ?%E9%A6%96%E9%A1%B5, bien qu'il s'affiche correctement dans la chaîne de requête dans la barre d'adresse du navigateur.

Répondre

1

La valeur doit être URI codé avant que vous formez l'URL:

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

Maintenant, cela ne peut pas être tous vous avez à faire, car il est possible que le serveur pourrait causer des problèmes, mais vous généralement vouloir faire ce codage de toute façon avec une entrée fournie directement à partir d'un champ de texte.

Questions connexes