PHP:字符串(UTF8)格式错误的HTML特殊字符


PHP: HTML special characters wrongly formatted in string (UTF8)

我有一个CURL脚本,可以从普通JSON提要中提取数据。提要返回html代码,但是特殊的html字符格式错误。

例如,我得到以下字符串: 美丽的新图形绚丽的新有机环境~…新的障碍

数据存储到数据库中,我想存储特殊的html字符以及

如何保留特殊的html字符。我的脚本如下:

$curl_session = curl_init();
curl_setopt($curl_session, CURLOPT_URL,'https://itunes.apple.com/lookup?id=572395608');
curl_setopt($curl_session, CURLOPT_CONNECTTIMEOUT,10); 
curl_setopt($curl_session, CURLOPT_TIMEOUT, 10);                
curl_setopt($curl_session, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_session, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl_session, CURLOPT_SSL_VERIFYPEER, 0);
$source = curl_exec($curl_session);
$source_decoded = json_decode($source, true);
print_r($source_decoded);
exit;

您接收到的字符是UTF-8,因为这是JSON中唯一允许和可能的编码。

但是你输出它们不是UTF-8。改变这种情况。发送一个内容类型报头,告诉客户端使用了哪种编码。或者将字符转换为您正在使用的编码,并冒着丢失那些不能用它编码的字符的风险。