PHP - Mengendalikan Nama Fail UTF-8 pada Windows
Pernyataan Masalah
Memuat naik fail dengan nama fail yang dikodkan UTF-8 mengakibatkan aksara yang herot pada Windows.
Penyelesaian Cadangan
Cadangan asal untuk menyelesaikan isu ini melibatkan penggunaan fungsi iconv() untuk menukar nama fail kepada halaman kod yang serasi dengan sistem Windows, seperti CP1258. Walau bagaimanapun, pendekatan ini mempunyai had.
Penyelesaian Kemas Kini
Pada hakikatnya, fungsi sistem fail PHP hanya boleh mengendalikan aksara yang berada dalam halaman kod aktif sistem. Oleh itu, dua penyelesaian yang mungkin timbul:
Pilihan 1:
- Hadkan aksara nama fail pada halaman kod sistem (cth., CP437 dalam kes anda)
- Pilihan ini mengehadkan penggunaan aksara Vietnam.
Pilihan 2:
- Tukar halaman kod sistem kepada bahasa Vietnam (mis., CP1258 )
- Tukar nama fail kepada halaman kod baharu (cth., $fn2 = iconv("UTF-8","cp1258", $base_dir.$fn);)
- Pilihan ini juga mengehadkan aksara nama fail kepada kod Vietnam halaman 1258.
Kelemahan Kedua-dua Pilihan:
-
Pilihan 1: Ketidakupayaan untuk gunakan aksara Vietnam tertentu
-
Pilihan 2: Keperluan untuk menukar halaman kod sistem dan pengehadan pada aksara nama fail
Maklumat Tambahan tentang Menukar Halaman Kod Sistem
Untuk menukar halaman kod sistem:
- Navigasi ke Panel Kawalan > Rantau
- Pilih tab "Pentadbiran"
- Di bawah "Bahasa untuk program bukan Unikod," klik butang "Tukar tempat sistem"
- Pilih "Vietnam (Vietnam)" daripada menu lungsur turun
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Nama Fail UTF-8 dalam PHP pada Windows?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!