2010-11-18 8 views
0

dekodieren Ich muss ein Feld in die Datenbank mit Ajax und PHP aktualisieren.wie eine Zeichenfolge in Javascript oder jquery codieren und mit php

Es funktioniert gut, aber wenn es Sonderzeichen wie folgt

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

Das Skript fügt Junk-Daten in die Datenbank.

Ich versuchte mit Escape() von Javascript URL-Codierung zu tun, es codiert die Daten, aber wenn ich es mit PHP dekodieren zeigt es wieder Junk-Werte.

+1

Es sollte nichts nötig sein, etwas zu kodieren, solange Sie es wie UTF-8-Daten von Anfang bis Ende behandeln. Worauf ist Ihre Datenbank/Datenbankverbindung/App/Website-Codierung eingestellt? – deceze

+0

meine Datenbank ist mysql, PHP ist in charset = utf-8 da ich ajax verwende, müssen die Parameter, die ich übergebe, url unterstützt werden, wenn ich die Zeichenkette nicht kodiere, ignoriert sie einfach den Anruf. Und wenn ich die Zeichenfolge mit Javascript codieren sendet die Daten über AJAX zu einer PHP-Verarbeitungsseite. aber wenn ich versuche, es zu ursprünglichen String zu dekodieren wird nicht richtig decodiert. – dirtycode

+1

ein Beispiel für Sie zu überprüfen - http://stackoverflow.com/questions/4143853/utf-8-problem-when-saving-to-mysql/4143922 – ajreal

Antwort

1

können Sie versuchen, encodeURIComponent statt escape verwenden, dass Sie so etwas wie dieses geben:

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

während escape ergäbe:

%u0627%u0644%u0644%u0647... 

und die Unicode-Fluchten jemand könnte verwirrend.

+0

Dank encodeURIComponent gibt mir so etwas % D8% A7% D9% 84% D9 % 84% D9% 87% D9% 85% 20% D8% A7% D9% 86% D9% 8A .... aber wie man das in PHP – dirtycode

+0

AFAIK urldecode (http://php.net/manual /en/function.urldecode.php), dann schau, ob du Arabisch bekommst, dann versuch das Arabisch in die Datenbank zu legen und zu sehen, was rauskommt. Wenigstens wirst du dann wissen, wer den Unicode zermürbt. –