オンライン待機中 - phpQueryのコレクションで文字化けが発生します
映画パラダイスのコレクションでの文字化けについて、解決にご協力ください。 。 。 。 。 。 。 。
header("Content-type: text/html; charset=utf-8");
set_time_limit(0);
require_once("../phpQuery) /phpQuery.php");
functionshootCodeBug($data){
$data=mb_convert_encoding($data,'ISO-8859-1','gb2312');
return mb_convert_encoding( $data,'utf-8','GBK');
}
::$defaultCharset="gb2312";
$content = pq("#menu")->html ();
phpQuery::$documents=array(); //キャッシュをクリア
-----解決策のアイデア----- ------これはあなたの不適切な使用法が原因です
phpQuery は HTML 解析に DOMDocument を使用します
と DOMDocument::loadHTML メソッドは <メタ http-equiv に基づいて HTML データをロードします="Content-Type" content="text/html; charset= in the document.XXX"> ドキュメントの文字セットを識別します。
ドキュメント内にそのようなタグがない場合、デフォルトの文字セット ISO-8859-1 が使用されます
したがって、処理されるコンテンツに文字セット宣言タグがない場合は、文字セット宣言タグを追加する必要があります自分で作ってください
$htmlを設定します 解析対象のコンテンツであれば、
は問題なくphpQueryで処理されます
if(! preg_match('/<meta[^>]+charset=/i', $html)) {<br /> $charset = mb_check_encoding($html, 'utf-8') ? 'utf-8' : 'gbk';<br /> $html = sprintf('<meta http-equiv="Content-Type" content="text/html; charset=%s">%s', $charset, $html);<br />}<br />