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
Patricia Arquetteasal
2024-12-15 01:35:14657semak imbas

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);

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