首頁 > 後端開發 > php教程 > 為什麼 `file_get_contents()` 會亂碼 UTF-8 字符,如何修復它?

為什麼 `file_get_contents()` 會亂碼 UTF-8 字符,如何修復它?

DDD
發布: 2024-12-09 14:34:13
原創
449 人瀏覽過

Why Does `file_get_contents()` Garble UTF-8 Characters, and How Can I Fix It?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板