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!