ホームページ >バックエンド開発 >PHPチュートリアル >`file_get_contents()` が UTF-8 文字化けするのはなぜですか? どうすれば修正できますか?

`file_get_contents()` が UTF-8 文字化けするのはなぜですか? どうすれば修正できますか?

DDD
DDDオリジナル
2024-12-09 14:34:13393ブラウズ

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

file_get_contents() UTF-8 文字が歪む: 解決策

UTF-8 エンコーディングを使用して外部ソースから HTML をロードする場合、file_get_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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。