Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Fail Saya yang Dikodkan Semula Masih Menggunakan Pengekodan Lamanya?

Mengapa Fail Saya yang Dikodkan Semula Masih Menggunakan Pengekodan Lamanya?

Patricia Arquette
Patricia Arquetteasal
2024-11-07 13:21:03738semak imbas

Why Are My Re-Encoded Files Still Using Their Old Encoding?

Pengekodan Semula Fail ke UTF-8

Anda mempunyai koleksi fail yang tiada dalam pengekodan UTF-8 dan anda sedang dalam proses menukar tapak anda untuk menggunakan UTF-8. Untuk memudahkan peralihan ini, anda telah mencipta skrip ringkas yang dibaca dalam fail dan menyimpannya dalam UTF-8, tetapi fail yang terhasil mengekalkan pengekodan lamanya.

Berikut ialah skrip yang dimaksudkan:

header('Content-type: text/html; charset=utf-8');
mb_internal_encoding('UTF-8');
$fpath = "folder";
$d = dir($fpath);
while (False !== ($a = $d->read())) {
    if ($a != '.' and $a != '..') {
        $npath = $fpath . '/' . $a;

        $data = file_get_contents($npath);

        file_put_contents('tempfolder/' . $a, $data);
    }
}

Untuk berjaya menyimpan fail dalam pengekodan UTF-8, anda perlu menambah UTF-8 Byte Order Mark (BOM) pada permulaan setiap fail:

file_put_contents($myFile, "\xEF\xBB\xBF". $content); 

Dengan tambahan ini, skrip anda akan mengekod fail output dengan berkesan dalam UTF-8, memastikan keserasian dengan standard web moden.

Atas ialah kandungan terperinci Mengapa Fail Saya yang Dikodkan Semula Masih Menggunakan Pengekodan Lamanya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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