OpenCartのrss.phpで日本語が文字化けする。ã←こんな文字がたくさん出る。
upload/rss.phpのソースコードを見てみると、48行目
foreach ($results as $result) {
$products[]=array(
'name' => htmlentities(strip_tags($result['name'])),
'url' => htmlentities($url->href('product', FALSE, array('product_id' => $result['product_id']))),
'add_date' => date("D, d M Y H:i:s T", strtotime($result['date_product_added'])),
'desc' => htmlentities(strip_tags($result['description'],'ENT_QUOTES')) .
htmlentities('<br><img width="100" height="100" src="' .
$image->resize($result['filename'], 100, 100) . '">')
);
}
となっているが、ここのforeach文で文字化けしている様子。
htmlentities のデフォルト文字列は iso-8859-1なのでUTF-8に変更。
foreach ($results as $result) {
$products[]=array(
'name' => htmlentities(strip_tags($result['name']),ENT_COMPAT,"utf-8"),
'url' => htmlentities($url->href('product', FALSE, array('product_id' => $result['product_id'])),ENT_COMPAT,"utf-8"),
'add_date' => date("D, d M Y H:i:s T", strtotime($result['date_product_added'])),
'desc' => htmlentities(strip_tags($result['description'],'ENT_QUOTES'),ENT_COMPAT,"utf-8") .
htmlentities('<br><img width="100" height="100" src="' .
$image->resize($result['filename'], 100, 100) . '">'),ENT_COMPAT,"utf-8"
);
}
これで文字化けが解消された