ホームページ >バックエンド開発 >PHPチュートリアル >`file_get_contents()` が UTF-8 文字化けするのはなぜですか? どうすれば修正できますか?
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 サイトの他の関連記事を参照してください。