Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.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中的Facebook应用程序UTF-8问题_Php_Facebook - Fatal编程技术网

PHP中的Facebook应用程序UTF-8问题

PHP中的Facebook应用程序UTF-8问题,php,facebook,Php,Facebook,我正在使用PHP开发一个FacebookIframe应用程序,它从另一个站点打开一个RSS提要,并显示提要中的一个选定项。RSS源如果是UTF-8编码的,但是当我显示所选项目时,我会得到显示为ISO-8859的字符 示例:“不要”™“t”而不是“不要” 这是我的工作代码: $doc = new DOMDocument(); $doc->load('https://www.otherwebsite.com/rss.php'); foreach ($doc->getElementsByTa

我正在使用PHP开发一个FacebookIframe应用程序,它从另一个站点打开一个RSS提要,并显示提要中的一个选定项。RSS源如果是UTF-8编码的,但是当我显示所选项目时,我会得到显示为ISO-8859的字符

示例:“不要”™“t”而不是“不要”

这是我的工作代码:

$doc = new DOMDocument(); $doc->load('https://www.otherwebsite.com/rss.php'); foreach ($doc->getElementsByTagName('item') as $node) { $title = $node->getElementsByTagName('title')->item(0)->nodeValue; if ($title == $chinese->getAnimal()){ $horoscope = $node->getElementsByTagName('description')->item(0)->nodeValue; } } echo 'Your horoscope : ' . $horoscope . '

'; } $doc=新的DOMDocument(); $doc->load($doc)https://www.otherwebsite.com/rss.php'); foreach($doc->getElementsByTagName('item')作为$node){ $title=$node->getElementsByTagName('title')->item(0)->nodeValue; 如果($title==$chinese->getAnimal()){ $horoscope=$node->getElementsByTagName('description')->item(0)->nodeValue; } } 回音“你的星座:”$占星术

",; } 我使用的是PHP的5.2版。任何问题或建议都将被感激地接受,我仍在学习PHP,因此我可能错过了一些对更熟练的从业者来说显而易见的东西。

试试看

echo 'Your horoscope : ' . utf8_encode($horoscope);
然而,这只适用于ISO-8859-1

或者试试

$in_encoding = "ISO-8859-1"; //replace with the encoding of the RSS feed
echo 'Your horoscope : ' . iconv($in_encoding, "UTF-8", $horoscope);

确保您的网页上有适当的UTF-8 html标题和元数据,即:

<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1//EN' 'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='eng' lang='en'>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
<title>WAMP</title>
<meta name='Description' content='Website Under Construction' />
</head>
<body>
CONTENT
</body>
</html>
header('Content-Type:text/html;charset=iso-8859-1')


尝试将其添加到php文件的最顶端。

谢谢,添加标题就成功了。我的大脑处于FBML模式,我没有像过去那样做标题。但这是一个普通的旧iframe,需要标准html。我也尝试了编码,但为时已晚。
$horoscope = utf8_encode("Your Horoscope : $horoscope");
echo $horoscope;