ä=ä などの html 特殊文字をデコードするために html_entity_decode($string) を使用しています。次に、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) を実行すると、特殊文字が正常に表示されます。