2016-03-21 8 views
0

So die Geschichte geht, ich versuche, eine JSON-Zeichenfolge in meiner Datenbank zu speichern, aber jeder hebräische Brief verwandelt sich in "\ u05d4" zum Beispiel, die der Buchstabe sein soll "Er" auf Hebräisch (ה).Array zu JSON Codierung ungerade Verhalten mit hebräischen Zeichen

Englisch codiert richtig

Ich habe meine Forschung getan und festgestellt, dass diese Codierung JAVA oder C/C++ Zeichencodierung, aber ich kann nicht einen Weg zu speichern, es in meiner Datenbank als reguläres finden UTF-8 Zeichen zur Bearbeitung Bequemlichkeit ...

Holen der Daten und zeigt es auf meinen Seiten funktioniert gut (auf Hebräisch, wie es sollte), aber egal, welche Funktionen ich versuche, auf das Problem zu werfen, die Daten in meinem Datenbank ist codiert ...

Beispiel:

\u05d0\u05d9\u05e4\u05d4 \u05ea\u05e8\u05e6\u05d4 \u05e9\u05d4\u05e9\u05dd \u05d9\u05de\u05d5\u05e7\u05dd? 

sein soll: eine Menge zusätzlichen Platz

איפה תרצה שהשם ימוקם? 

Wie Sie sehen können, nimmt die Codierung auch auf, und die Bearbeitung von phpMyAdmin ist unmöglich ...

meine Funktionen zum Speichern der Daten:

während $ pinfo enthält alle Daten im Array (das ist Enc oded in utf-8)

Ist es ein Problem mit JSON_ENCODE() oder etwas völlig anderes, das mir noch nicht bekannt ist?

EDIT

die von Álvaro González und Tanuel Mategi gegebenen Informationen benutzen, konnte ich die Lösung, die ich nach war finden: mysql_real_escape_string(json_encode($pinfo, JSON_UNESCAPED_UNICODE))

Hoffe, es hilft!

+0

Sie mysql oder mysqli verwenden? Bitte teilen Sie den vollständigen Code mit. –

+0

Kannst du bitte genau erklären, warum du json_encode() dort verwendest? – VolkerK

+0

Das ist korrektes Verhalten. Ihre hebräischen Zeichen werden in Unicode-Blöcke umgewandelt. https://en.wikipedia.org/wiki/Unicode_block.Wenn Sie 'json_decode()' verwenden, sollten sie erneut dekodiert werden. –

Antwort

2

\u05d4 ist eine absolut gültige Escape-Sequenz in JSON. Es entspricht dem U+05d4 Unicode character (Hebräischer Buchstabe He). An deiner JSON-Ausgabe ist anscheinend nichts falsch - ich denke, du hast die format documentation einfach falsch gelesen.

+1

Vielen Dank für Ihre Antwort! Unter Verwendung der Informationen, die Sie gaben, fand ich eine Lösung für mein Problem: 'mres (json_encode ($ pinfo, JSON_UNESCAPED_UNICODE))' –

+0

Ich hätte gesagt, dass Sie überhaupt kein Problem hatten ... :) –

+0

Richtig, soll eine Lösung meiner Unannehmlichkeiten sagen! –

0

Ich verwende json_encode($x), keine zweite Arg. Und json_decode($y, TRUE). Betrachten Sie diese Kombination.

Wenn Sie unter mres meinen, mysql_real_escape_string(), verwenden Sie immer eine Escape-Funktion.

Aber tun Sie nicht verwenden mysql_*; wechseln Sie zu PDO oder mysqli_*.

0

Nichts falsch mit dem Ergebnis, wenn Sie es dekodieren wieder werden Sie genau das Ergebnis erhalten, die Sie wollen ..

+0

Vielen Dank für Ihre Antwort, aber ich schrieb, dass ich regelmäßig (nicht codiert) Text zur Bearbeitung von Komfort auf PhpMyAdmin benötigt –