2

我正在阅读 RSS 提要http://beersandbeans.com/feed/

提要说它是 UTF8 格式,我正在使用 simplepie rss 导入内容当我抓取内容并将其存储在其中时,$content我执行以下操作:

<?php
header ('Content-type: text/html; charset=utf-8');
?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"><head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head><body>
<?php
echo $content;
echo $enc = mb_detect_encoding($content, "UTF-8,ISO-8859-1", true);
echo $content = mb_convert_encoding($content, "UTF-8", $enc);
echo $enc = mb_detect_encoding($content, "UTF-8,ISO-8859-1", true);
?>
</body></html>

这会产生:

..... Camping:     2,000isk/day for 5 days) = $89 .....
ISO-8859-1
..... Camping: Â  Â           2,000isk/day for 5 days) = $89 .....
UTF-8

为什么输出 Â?

4

2 回答 2

2

尝试不指定“UTF-8,ISO-8859-1”,看看它给你什么编码。它可能正在检测 ISO-8859-1,因为它是该列表中的最后一个,而不是字符串的实际编码。

于 2011-04-12T12:18:06.913 回答
0

在中将 strict-mode 设置为 true mb_detect_encoding(),请参见http://www.php.net/manual/de/function.mb-detect-encoding.php#102510

也尝试http://www.php.net/manual/de/function.mb-convert-encoding.php而不是iconv()

于 2011-04-12T12:03:20.437 回答