Rumah > pembangunan bahagian belakang > tutorial php > Mengapakah `file_get_contents()` Menghancurkan Aksara UTF-8, dan Bagaimana Saya Boleh Membetulkannya?

Mengapakah `file_get_contents()` Menghancurkan Aksara UTF-8, dan Bagaimana Saya Boleh Membetulkannya?

DDD
Lepaskan: 2024-12-09 14:34:13
asal
519 orang telah melayarinya

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

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));
Salin selepas log masuk

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');
Salin selepas log masuk

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>
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan