一尘不染

如何使用法语重音对json_encode数组?

mysql

我有一个带有法国口音的数组项([WIPDescription] => Recette SoupeàlOignon Sans Boeuf
US)。数据已从数据库(mysql)中正确提取。

但是,当我尝试使用内置于json_encode的php将其编码为json时,它会生成一个空json值(OS X服务器:php 5.3.4,启用了json
1.2.1)。

在Linux服务器中,描述会在第一个重音字符后被截断。

我尝试了所有json_encode选项,但均未成功。有什么建议么?

谢谢。


阅读 222

收藏
2020-05-17

共1个答案

一尘不染

json_encode 只想utf-8。根据您的字符集,可以 调用变量 之前
使用iconv或。可能与。utf8_encode
__json_encode``array_walk_recursive

根据要求,采用一种 未完成的 方法来更改数组,并假设(1)它不包含对象,并且(2)数组键位于ascii /下界中,因此可以保留为:

$current_charset = 'ISO-8859-15';//or what it is now
array_walk_recursive($array,function(&$value) use ($current_charset){
     $value = iconv('UTF-8//TRANSLIT',$current_charset,$value);

});
2020-05-17