PHP json_encode()函数和波斯语

Far*_* Rn 4 json persian

我正在将网站数据库转换为Joomla的K2组件数据库.在K2中有一个extra_fields列,用户可以创建自定义字段,类似于Drupal的CCK.所以我使用此功能将项目的来源保存在一个字段中. {"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]);
    }
    
    Run Code Online (Sandbox Code Playgroud)

更新2:

我想我解决了自己的问题.检查答案.

Mor*_*zaE 9

从5.4.0开始,您可以将非转义的unicode用于JSON,方法是将常量JSON_UNESCAPED_UNICODE作为第二个参数传递(当然这是可选的):

<?php var_dump(json_encode(array('text' => '???????? ? ????? ?????'), JSON_UNESCAPED_UNICODE)); ?>
Run Code Online (Sandbox Code Playgroud)

输出将是:

string(52) "{"text":"???????? ? ????? ?????"}"
Run Code Online (Sandbox Code Playgroud)

(从这里)