<?php
mb_internal_encoding('UTF-8');
mb_language('uni');
$a=file_get_contents("http://www.ciao.de/Erfahrungsberichte/8x4_Wild_Flower_Deo_Spray__8937431");
preg_match('/dass auf dem Versch(.*)ziehen mich/Us',$a,$b);
$b=$b[1];
echo $b."\n";
echo utf8_encode($b)."\n";
echo mb_convert_encoding($b,'UTF-8','iso-8859-1')."\n";
結果は
lussdeckel riesengro▒ und un▒bersehbar glitzernd ein ▒New▒ prangt. Neue Produkte
lussdeckel riesengroß und unübersehbar glitzernd ein �New� prangt. Neue Produkte
lussdeckel riesengroß und unübersehbar glitzernd ein �New� prangt. Neue Produkte
HTTP ソース コードは、メタ タグで「iso-8859-1」を使用することを提案しています。ドイツ語のウムラウトは問題ありませんが、「New」を囲む引用符が正しく変換されないのはなぜですか? PHPマニュアル には、関数 fix_latin があります。この関数を使用すると、引用符も正しく変換されます!?
PS: ヨーロッパの通貨記号 € (EUR) でも同じことが起こります - これも間違って変換されます (fix_latin 関数を除く) が、なぜですか?