Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Mengendalikan Nama Fail UTF-8 dalam Fungsi Sistem Fail PHP?

Bagaimanakah Saya Boleh Mengendalikan Nama Fail UTF-8 dalam Fungsi Sistem Fail PHP?

Patricia Arquette
Lepaskan: 2024-12-15 01:35:14
asal
746 orang telah melayarinya

How Can I Handle UTF-8 Filenames in PHP's Filesystem Functions?

Mengendalikan Nama Fail UTF-8 dalam Fungsi Sistem Fail PHP

Apabila mencipta folder yang mengandungi aksara UTF-8 menggunakan fungsi mkdir PHP, anda mungkin menghadapi paparan isu dalam Windows Explorer disebabkan pengekodan ketidakserasian.

Penyelesaian: URL Encode Nama Fail

Untuk menyelesaikan isu ini, gunakan fungsi urlencode untuk menukar nama folder yang diingini kepada format selamat URL sebelum menghantarnya ke mkdir:

$dir_name = urlencode("Depósito");
mkdir($dir_name);
Salin selepas log masuk

Ini memastikan bahawa semua aksara dalam nama folder dikodkan menjadi sah nama fail untuk semua sistem pengendalian. Untuk mendapatkan semula nama fail UTF-8 yang asal, gunakan urldecode.

Penyelesaian Alternatif (dengan Kaveat)

Walaupun pengekodan URL ialah penyelesaian yang disyorkan, terdapat alternatif yang kurang menarik:

Tukar kepada ISO-8859-1 (Windows Sahaja)

Pada Windows, anda boleh bekerja dengan nama fail UTF-8 tetapi ambil perhatian bahawa aksara bukan ASCII akan muncul secara tidak betul di luar PHP. Untuk menangani perkara ini, gunakan utf8_decode untuk menukar nama fail kepada ISO-8859-1 sebelum menggunakannya dalam fungsi sistem fail.

Hadkan kepada Aksara ISO-8859-1

Sebagai alternatif, hadkan nama fail kepada aksara yang boleh diwakili dalam ISO-8859-1. Gunakan utf8_decode dan utf8_encode untuk menukar nama fail antara UTF-8 dan ISO-8859-1.

Walau bagaimanapun, alternatif ini disertakan dengan kaveat:

  • Fungsi sistem fail tidak boleh mengendalikan bait yang sepadan dengan Windows yang tidak sah aksara sistem fail dalam ISO-8859-1.
  • Windows mungkin menggunakan pengekodan bukan ISO-8859-1 dalam tempat bukan bahasa Inggeris, yang memerlukan penukaran yang lebih kompleks.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Nama Fail UTF-8 dalam Fungsi Sistem Fail PHP?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan