1

ä=ä などの 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) を実行すると、特殊文字が正常に表示されます。

4

0 に答える 0