2009-09-12 5 views
0

J'ai rencontré des problèmes ici, je remarque que certains caractères accentués si j'essaie de les transmettre comme valeur sin un appel ajax, ils finissent par tous comme drôle par exemple:caractères accentués drôle d'air en html passé dans l'appel ajax

Adana Sakirpasa

se transforme en

Adana% u015Eakirpa% u015Fa

ce qui est erroné ici :(

EDIT = =================

Le problème est qu'une fois que les caractères sont reçus par mon script php sur le backend, ils sont tous foiré d'ici là! Que dois-je faire :(

Répondre

2

J'ai rencontré le même problème et j'ai utilisé utf8_encode() sur les données du script php qui a été appelé en utilisant ajax pour le résoudre. Je pense que vous pouvez aussi utiliser htmlentities().

+1

Ni utf8-decode() ni htmlentities() ne traduisent une séquence% u .... – VolkerK

+0

En lisant la question, la chaîne d'origine ne contient pas une séquence% u ... mais des caractères avec des accents. – jeroen

+0

Le problème est que les caractères qu'ils atteignent le script PHP sont changés de caractères accentués dans ces séquences amusantes% u ... – Ali

1

Java/ECMAScript parse \ séquences Uxxxxxx mais pas % u ... dans le texte source.
voir http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf

Vous pouvez convertir le formulaire de transport avec la fonction javascript unescape()
par exemple

<html> 
    <head><title>...</title> 
    </script> 
    </head> 
    <body> 
    <p id="output"></p> 
    <script type="text/javascript"> 
     var x = 'Adana %u015Eakirpa%u015Fa'; 
     document.getElementById("output").innerHTML = unescape(x); 
    </script> 
    </body> 
</html> 

montreMais vous pourriez envisager de stocker et de l'envoyer sous forme de caractères utf-8 "simples" côté serveur.

+0

Euh Comment faire cela je veux dire l'envoyer en tant que simple utf 8 – Ali

+0

Comment envoyer la chaîne client-> serveur (code)? – VolkerK

Questions connexes