2

My Database は、特殊文字を含む次の JSON を返します。元の文字に変換する必要があります。

{   "event_id":"5153",
      "name":"Event Test",
      "description":"Persönlichkeit Universität"",
      "start_time":"2013-04-24 9:00 AM EST",
        "end_time":"2013-04-24 5:00 PM EST"  
}

すべての HTML 文字を削除したい。&oumlそして、すべての文字を元の文字に変換します。したがって、description上記の JSON は実際には次のようになります。

Persönlichkeit Universität"

array_walk配列をJSONにエンコードする前に、配列とstrip_tags各要素でやっています。これで問題ありません。(その結果、上記の JSON が生成されます)。

文字を取り戻すために、私は試しました:

  1. encoding again with utf8_encode
  2. htmlspecialchars_decode
  3. html_entity_decode  //This one is eliminating the character altogether.

しかし、元の文字を返すものは何もありませんでした。

何か案は?

アップデート:

これを試しました。しかし、説明フィールドが null として返されるようになりました

    array_walk_recursive($results, function (&$val) {
    $val = strip_tags(html_entity_decode($val));
});

$results = json_encode( $results);
4

2 に答える 2

1

html_entity_decodeトリックを行う必要があります。あなたの問題は別の場所にあると思います。json_encodeUTF-8 文字のみを受け入れることに注意してください。だからあなたはおそらくutf8_encodeあなたのひもを持っている必要があります。

于 2013-04-17T21:34:56.480 に答える