经过2个小时的挖掘(参考编辑)
我发现以下内容:
- 就我而言,这是编码问题
mb_detect_encoding
返回错误的响应,某些字符串可能不是UTF-8utf8_enpre()
在这些字符串上使用解决了我的问题,但请参阅下面的注释
这是一个递归函数,可以强制将数组中包含的所有字符串转换为UTF-8:
function utf8ize($d) { if (is_array($d)) { foreach ($d as $k => $v) { $d[$k] = utf8ize($v); } } else if (is_string ($d)) { return utf8_enpre($d); } return $d;}
像这样简单地使用它:
echo json_enpre(utf8ize($data));
注意:utf8_enpre()根据文档将ISO-8859-1字符串编码为UTF-8,因此,如不确定注释和其他解决方案中所述,如果不确定输入编码iconv()或mb_convert_encoding()可能是更好的选择。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)