PHP DOMDocument 遇到 UTF-8 編碼問題 (☆)
PHP 的 DOMDocument 處理 UTF-8 字元遇到困難?您的網頁伺服器、檔案和設定可能配置為 UTF-8,但 DOMDocument 仍然有問題。我們將探討該問題並提供解決方案以確保正確的 UTF-8 解釋。
問題的根源:
DOMDocument::loadHTML() 需要 HTML字串,通常根據 HTML 規格以 ISO-8859-1 進行編碼。但是,UTF-8 編碼的字串(例如您的字串)與此期望不相容。
解決方案1:轉換為HTML 實體
要解決此不相容性,請轉換所有超過Unicode 值127 (h7F) 的字元都轉為HTML 實體。具有HTML-ENTITIES 目標編碼的mb_convert_encoding 函數可以完成此任務:
<code class="php">$us_ascii = mb_convert_encoding($utf_8, 'HTML-ENTITIES', 'UTF-8');</code>
解決方案2:新增HTML 元標記
或者,您可以透過提示新增提示進行編碼指定字元集的標籤:
<code class="php">$dom = new DomDocument(); $dom->loadHTML('<meta http-equiv="content-type" content="text/html; charset=utf-8">'.$html);</code>
此標籤會自動放置在
中。部分,遵循 HTML 2.0 規範。確保準確編碼
最後,驗證您的輸入字串是否真正以 UTF-8 編碼。某些輸入中可能存在混合編碼,使轉換過程變得複雜。根據需要使用正規表示式執行目標字串替換。
以上是為什麼 PHP 的 DOMDocument 無法處理 UTF-8 字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!