2012年6月 4日

[PHP-users 35725] Re: DOMDocument

後藤と申します。

DOMDocument::loadHTML は metaタグからHTMLの文字エンコーディングを判断していたと思いますが、

http://www.nhk.or.jp/worldwave/abc/popup/abc120423.html

↑の charset が HTML5 な指定になっているため、loadHTML で
エンコーディングが解釈できていないからではないでしょうか?


試しにそのページのHTMLをダウンロードして、meta タグの charset の部分を
下記のように書き換えて loadHTML に渡せば上手くいくと思います。

<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

もしくは loadHTML の直前で

$html = mb_convert_encoding($html, 'HTML-ENTITIES', 'auto');

などとして、マルチバイト文字を数値文字参照に置き換えてやるとか。
_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2012年6月 4日 22:38
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/110843
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。