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に設定します。http://www.php.net/manual/de/function.mb-detect-encoding.php#102510mb_detect_encoding()を参照してください。

また、代わりにhttp://www.php.net/manual/de/function.mb-convert-encoding.phpを試してくださいiconv()

于 2011-04-12T12:03:20.437 に答える