2016-04-05 3 views
0

でHTMLエンティティに文字(?や進文字)json_decoded文字列のエスケープ°。 私が受け取っている文字列がどんな形式であるか分かりません。それはjsonなので、これはjavascriptでエスケープされた特殊文字ですか?もしそうなら、どのように私はそれをエスケープして行くのでしょうか(そしてどこで)?私はajaxコール(html.(unescape(data)))で試してみましたが、うまくいきませんでした。私が似たような問題を読んだ記事の多くは、phpのmb_convert_encoding()を示唆していますが、私は何を変換しようとしているのか分かりません(実際には... HTMLエンティティですか?その形式のすべての文字(\ xxx)よりも?どんな洞察にも感謝します。変換jsが、私が持っているPHP

+0

jsonは常にutf-8です。 – steven

+0

あなたのhtmlエンコーディングがutf-8であることを確認してください。変換せずに適切な出力が得られます。 – steven

+0

@stevenありがとう、これはWordPressで常にutf-8を使用しています(dbでも確認済み) – user1574371

答えて

0

非標準のJSONを扱っているように見えます。エンコードする前にjsonをutf8izeできるのが最善です。それが別のサーバーにあり、アクセスできない場合は、jsonからUTF8へのものをエンコードすることができます。

$results = utf8_encode(json_decode("http://... 
+0

ありがとう、私はこれを試しましたが、何の影響もありませんでした。 – user1574371

+0

私はfile_get_contentsの出力でmb_detect_encodingを使用し、それはasciiを返しました。 "$ utf8str = mb_convert_encoding($ str、" ASCII "、" UTF-8 ");'を試みましたが、同じ文字が引き続きエスケープされたjavascriptとして表示されます... – user1574371

+0

json_decodeが配列なので、uft8_encodeはjson_decodeをエンコードできません。あなたはjson_decodeを実行する前にutf8_encodeを入れて、それがうまく動作するかどうか確認することができます。配列上でutf8_encodeを実行することもできます: function utf8_encode_array($ array){ return array_map( 'utf8_encode'、$ array); } $ encoded_array = array_walk_recursive( 'utf8_encode_array'、$ your_array); – sanarena

関連する問題