任何方式来返回PHP的`json_encode`编码UTF-8,而不是Unicode?
任何方式来返回PHP的json_encode编码UTF-8,而不是Unicode? 
 $arr=array('a'=>'á'); echo json_encode($arr); 
 mb_internal_encoding('UTF-8'); 和$arr=array_map('utf8_encode',$arr); 不解决它。 
 结果: {"a":"\u00e1"} 
  预期成果: {"a":"á"} 
  {"a":"\u00e1"}和{"a":"á"}是写相同的JSON文档的不同方式;  JSON解码器将解码unicode转义。 
 在php 5.4+中,php的json_encode确实有普通输出的JSON_UNESCAPED_UNICODE选项。 在较早的php版本中,可以推出自己的不编码非ASCII字符的 JSON编码器,或者使用Pear的 JSON编码器并删除第349至433行。 
这个function在这里find,对我来说工作得很好
 function jsonRemoveUnicodeSequences($struct) { return preg_replace("/\\\\u([a-f0-9]{4})/e", "iconv('UCS-4LE','UTF-8',pack('V', hexdec('U$1')))", json_encode($struct)); } 
我解决了我的问题:
- .php文件被编码为ANSI。 在这个文件中是创build.json文件的函数。
-  我使用json_encode($array, JSON_UNESCAPED_UNICODE)来编码数据;
结果是一个按照UTF-8编码为ANSI的.json文件。
 在json_encode()里面使用JSON_UNESCAPED_UNICODE如果你的PHP版本> = 5.4。 
只是用这个,
 utf8_encode($string); 
 你必须用$stringreplace你的$arr 。 
我认为这将工作…试试这个。