file_get_contents() 扭曲UTF-8 字元:解
使用UTF-8 編碼從外部來源載入時,fileget_contents( )可能會損壞字符,導致特殊字符的錯誤表示。要解決此問題:
檢查編碼設定:
確保遠端伺服器以正確的 UTF-8 編碼提供 HTML。檢查 Content-Type 標頭以確認伺服器聲明的編碼。
將編碼應用於本機 PHP 函數:
在某些情況下,手動指定 PHP 中的編碼功能可以解決問題。使用 mb_detect_encoding() 函數識別傳回內容的編碼,然後使用 mb_convert_encoding() 或 iconv() 將其轉換為所需的編碼(例如 UTF-8)。
$html = mb_convert_encoding($html, 'UTF-8', mb_detect_encoding($html, 'UTF-8', true));
考慮 HTML 實體:
如果字元仍然扭曲,考慮將它們轉換為 HTML 實體。這可以使用 htmlentities() 來完成。
$html = htmlentities($html, ENT_QUOTES, 'UTF-8');
範例:
以下範例示範如何使用 UTF-8 字元載入 HTML 並將其轉換為 HTML實體:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Test</title> </head> <body> <?php $html = file_get_contents('http://example.com'); echo htmlentities($html); ?> </body> </html>
以上是為什麼 `file_get_contents()` 會亂碼 UTF-8 字符,如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!