2011-09-15 16 views
3
私は値の配列を挿入するための json_encodeを使用しています

(のような:。json_encodeによってデータベース(select * from tabla ...)のسید سعید داداشزادهjson_encodeとペルシア語?

出力:データベース内<input name="ok[]">...は、それが["\u0633\u06cc\u062f \u0633\u0639\u06cc\u062f \u062f\u0627\u062f\u0627\u0634\u0632\u0627\u062f\u0647"]としてペルシャ語の単語を挿入し、それが以前のように挿入された理由がわかりません(データベースの)私のテーブルでは[\"\\u0633\\u06cc\\u062f \\u0633\\u0639\\u06cc\\u062f \\u062f\\u0627\\u062f\\u0627\\u0634\\u0632\\u0627\\u062f\\u0647\"]"

、この列の照合順序がutf8_general_ciある

私はسید سعید داداشزاده

として print("output of database")ペルシャ語の単語のために何をしますか:ようです?

答えて

3

json_encodeは、すべてASCII以外の文字を\uXXXX表記でエンコードします。

json_decode('["\u0633\u06cc\u062f \u0633\u0639\u06cc\u062f \u062f\u0627\u062f\u0627\u0634\u0632\u0627\u062f\u0647"]'); 
// array('سید سعید داداشزاده') 

しかし、あなたがデータベースから取得した文字列がエスケープされているようです:任意のJSONデコーダ、およびJavaScriptは、この表記を認識するので、これは問題ではありません。データベースに挿入する前にダブルエスケープされているか、またはmagic_quotes_runtimeが有効になっています。それをアンエスケープする、json_decodeを使用する前に、JSON文字列にstripslashesを使用します。

json_decode(stripslashes('[\"\\u0633\\u06cc\\u062f \\u0633\\u0639\\u06cc\\u062f \\u062f\\u0627\\u062f\\u0627\\u0634\\u0632\\u0627\\u062f\\u0647\"]')); 
+1

私は、エラーを持っているjson_decode' '使用する場合。最初の投稿にコードとエラーを入れました。UPDATEを参照してください。 –

0

json_encodeは、各文字をエスケープしています。各文字の余分なスラッシュを削除するには、文字列にstripslashes()を使用します。

+0

私は 'json_decode'を使うとエラーが出ます。最初の投稿にコードとエラーを入れました。UPDATEを参照してください。 –

関連する問題