Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah `file_get_contents()` Menghancurkan Aksara UTF-8, dan Bagaimana Saya Boleh Membetulkannya?
file_get_contents() Mengherotkan Aksara UTF-8: Satu Resolusi
Apabila memuatkan HTML daripada sumber luaran dengan pengekodan UTF-8, file_get_contents() boleh merosakkan aksara, mengakibatkan perwakilan yang salah daripada特殊字符. Untuk menangani isu ini:
Periksa Tetapan Pengekodan:
Pastikan pelayan jauh menyediakan HTML dalam pengekodan UTF-8 yang betul. Semak pengepala Jenis Kandungan untuk mengesahkan pengekodan yang diisytiharkan oleh pelayan.
Guna Pengekodan pada Fungsi PHP Asli:
Dalam sesetengah kes, nyatakan pengekodan dalam PHP secara manual fungsi boleh menyelesaikan masalah. Gunakan fungsi mb_detect_encoding() untuk mengenal pasti pengekodan kandungan yang dikembalikan dan kemudian gunakan mb_convert_encoding() atau iconv() untuk menukarnya kepada pengekodan yang diingini (cth., UTF-8).
$html = mb_convert_encoding($html, 'UTF-8', mb_detect_encoding($html, 'UTF-8', true));
Pertimbangkan Entiti HTML:
Jika aksara masih diherotkan, pertimbangkan untuk menukarnya kepada entiti HTML. Ini boleh dilakukan menggunakan htmlentities().
$html = htmlentities($html, ENT_QUOTES, 'UTF-8');
Contoh:
Contoh berikut menunjukkan cara memuatkan HTML dengan aksara UTF-8 dan menukarnya kepada HTML entiti:
<!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>
Atas ialah kandungan terperinci Mengapakah `file_get_contents()` Menghancurkan Aksara UTF-8, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!