2010-11-18 34 views
0

J'ai besoin de mettre à jour un champ dans la base de données en utilisant Ajax et PHP.comment encoder une chaîne en javascript ou jquery et la décoder en utilisant php

Il fonctionne très bien, mais quand il y a des caractères spéciaux comme suit

اللهم اني اشكو اليك ضعف قوتي وقلة حيلتي وهواني علي الناس

Le script insère les données indésirables dans la base de données.

J'ai essayé d'utiliser escape() de javascript pour encoder l'URL, il code les données mais quand je le décrypte en PHP, il affiche à nouveau les valeurs indésirables.

+1

Il ne devrait pas être nécessaire de coder quoi que ce soit tant que vous le manipulez comme des données UTF-8 du début à la fin. Quel est le réglage de l'encodage de votre base de données/connexion à la base de données/application/site Web? – deceze

+0

ma base de données est mysql, php est dans charset = utf-8 depuis que j'utilise ajax, les paramètres que je passe doivent être supportés par url, si je n'encode pas la chaîne, il ignore simplement l'appel. Et quand j'encode la chaîne en utilisant javascript envoie les données via AJAX à une page de traitement PHP. mais quand j'essaie de le décoder en chaîne d'origine, il n'est pas décodé correctement. – dirtycode

+1

un exemple pour vous de vérifier - http://stackoverflow.com/questions/4143853/utf-8-problem-when-saving-to-mysql/4143922 – ajreal

Répondre

1

Vous pouvez essayer d'utiliser encodeURIComponent au lieu de escape, qui vous donnera quelque chose comme ceci:

%D8%A7%D9%84%D9%84... 

alors escape céderais:

%u0627%u0644%u0644%u0647... 

et les évasions unicode pourraient être source de confusion quelqu'un.

+0

merci, encodeURIComponent me donne quelque chose comme ça % J8% A7% D9% 84% D9 % 84% D9% 87% D9% 85% 20% D8% A7% D9% 86% D9% 8A .... mais comment le décoder en PHP – dirtycode

+0

AFAIK urldecode (http://php.net/manual /fr/function.urldecode.php), puis voyez si vous obtenez l'arabe, puis essayez de mettre l'arabe dans la base de données et voyez ce qui sort. Au moins, vous saurez qui mange l'Unicode. –