Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:HTML特殊字符在字符串中格式错误(UTF8)_Php_Utf 8 - Fatal编程技术网

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

PHP:HTML特殊字符在字符串中格式错误(UTF8),php,utf-8,Php,Utf 8,我有一个CURL脚本,它从一个普通的JSON提要中提取数据。提要返回html代码,但特殊的html字符格式错误 例如,我得到以下字符串: 漂亮的新图形 -美丽的新有机环境 -新的障碍 数据存储在数据库中,我还想存储特殊的html字符 如何保存特殊的html字符。我的脚本如下: $curl_session = curl_init(); curl_setopt($curl_session, CURLOPT_URL,'https://itunes.apple.com/lookup?id=572395

我有一个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。改变这个。发送一个内容类型头,告诉客户端使用了哪种编码。或者将字符转换为您正在使用的编码,并冒着丢失无法用它编码的字符的风险。

什么是
mb_detect_编码($source))返回?@mkaatman:it返回:UTF-8。使用utf8_decode(),我将其作为输出:?漂亮的新图形?美丽的新有机环境?新obstaclesHow about:
echo htmlspecialchars($source,ENT_引号,'UTF-8')@mkaatman:它的格式仍然错误:\n–ª…漂亮的新图形\n–ª…漂亮的新有机环境\n–ª…新障碍物我正在本地设置它以进行尝试。稍等。简而言之,使用:header('Content-Type:text/html;charset=utf-8');