我正在使用 html_entity_decode($string) 来解码 html 特殊字符,例如 ä=ä。然后我使用 json_encode() 创建一个用于 Android 应用程序的 json 字符串。我的问题是我得到 \u00e4 而不是 'ä' 的输出。我知道 json_encode() 仅适用于 UTF-8 编码的字符串,但是当我对我的值运行 mb_detect_encding($myString) 时,它返回“UTF-8”。在值上运行 ut8_encode() 没有帮助。这是我的代码:
$newsList = array();
while($row = $news->fetch_object()){
$tmpNews = new News();
$tmpNews->imgId = $row->image_id;
$tmpNews->author = html_entity_decode($row->author);
$tmpNews->subject = $row->subject;
$tmpNews->msg = $row->msg;
$tmpNews->newsmsg = $row->newsmsg;
$tmpNews->date = $row->wdate;
array_push($newsList, $tmpNews);
$tmpNews = null;
}
$json = array();
foreach($newsList as $news){
array_push($json, $news->getJson());
}
var_dump($json);
echo json_encode($json);
当我执行 var_dump($json) 时,我的特殊字符正常显示。