4

WebサイトデータベースをJoomlaのK2コンポーネントデータベースに変換しています。K2には、DrupalのCCKと同様に、ユーザーがカスタムフィールドを作成できるextra_fields列があります。そこで、この機能を使用して、アイテムのソースをフィールドに保持しました。 {"id":"7", "value":"Text"} しかし、私がjson_encode"ارتباطاتواطلاعرساني"または他の何かを取得する代わりに使用するとき

{"id":7,"value":"\u0627\u0631\u062a\u0628\u0627\u0637\u0627\u062a \u0648 \u0627\u0637\u0644\u0627\u0639 \u0631\u0633\u0627\u0646\u064a"}

私のローカルホストに表示されているものは、次のとおりです。

{"id":"7","value":"u0631u0648u0627u0628u0637 u0639u0645u0648u0645u064a"}、データがデータベースに挿入されるとき

アップデート:

  • 私がjson_encodeしようとしているものにスラッシュはありません

  • テーブルから読み取り、データを変換して別のテーブルに挿入するphpコードを作成しました

  • ソースからjson_encodedデータを作成するために使用するスクリプトは次のとおりです。

    if($this->source[$i]){
            $this->source[$i] = trim($this->source[$i]);
            $this->extrafield[$i] = array("id"=>"7", "value"=>$this->source[$i]);
            $this->extrafield[$i] = json_encode($this->extrafield[$i]);
    }
    

更新2:

私は自分の問題を解決したと思います。答えを確認してください。

4

3 に答える 3

10

5.4.0以降では、定数JSON_UNESCAPED_UNICODEを2番目のパラメーター(もちろんオプション)として渡すことで、JSONにエスケープされていないUnicodeを使用できます。

<?php var_dump(json_encode(array('text' => 'ارتباطات و اطلاع رسانی'), JSON_UNESCAPED_UNICODE)); ?>

出力は次のようになります。

string(52) "{"text":"ارتباطات و اطلاع رسانی"}"

ここから)

于 2014-06-09T17:51:42.780 に答える
1

問題が実際にどこにあるのかを特定するように努めるべきだと思います。これをファイルに保存していますか?データベース?いくつかのエスケープ(またはエスケープ解除)コードによってスラッシュが削除されている可能性がありますか?

PHP 5.3.4では、次のコードは次のとおりです。

<?php var_dump(json_encode(array('text' => 'رتباطات و اطلاع رساني')));

正しく出力:

string '{"text":"\u0631\u062a\u0628\u0627\u0637\u0627\u062a \u0648 \u0627\u0637\u0644\u0627\u0639 \u0631\u0633\u0627\u0646\u064a"}' (length=122)

于 2011-11-26T02:11:21.027 に答える
0

この問題を解決するには、以下のコードを使用してください

echo json_encode(Array、JSON_UNESCAPED_UNICODE);

于 2021-04-24T01:57:50.943 に答える