1

我正在使用 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) 时,我的特殊字符正常显示。

4

0 回答 0