Pengekodan Fail dalam Format UTF-8
Soalan ini menangani cabaran menukar fail dengan pengekodan bukan UTF-8 kepada UTF-8 format semasa penghijrahan tapak web. Skrip yang disediakan mendapatkan semula data fail tetapi gagal dalam menyimpannya dalam pengekodan UTF-8 yang dikehendaki.
Untuk menyelesaikan isu ini, tambah BOM (Byte Order Mark) untuk UTF-8. Watak unik ini memberitahu sistem bahawa fail dikodkan dalam UTF-8. Masukkan baris berikut sebelum menyimpan fail:
file_put_contents($myFile, "\xEF\xBB\xBF". $content);
Berikut ialah kod dengan tambahan:
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, "\xEF\xBB\xBF".$data); // Append BOM for UTF-8 } }
Pengubahsuaian ini memastikan bahawa $data dikodkan dalam UTF-8, dan fail akan disimpan dalam format yang betul.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Fail kepada UTF-8 Semasa Migrasi Laman Web?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!