PHP – Umgang mit UTF-8-Dateinamen unter Windows
Problembeschreibung
Das Hochladen von Dateien mit UTF-8-codierten Dateinamen führt unter Windows zu verzerrten Zeichen.
Vorgeschlagene Lösung
Der ursprüngliche Vorschlag zur Lösung dieses Problems beinhaltete die Verwendung der iconv()-Funktion, um den Dateinamen in eine Codepage zu konvertieren, die mit dem Windows-System kompatibel ist, wie z. B. CP1258. Allerdings weist dieser Ansatz Einschränkungen auf.
Aktualisierte Lösung
In Wirklichkeit können PHP-Dateisystemfunktionen nur Zeichen verarbeiten, die sich innerhalb der aktiven Codepage des Systems befinden. Daher ergeben sich zwei mögliche Lösungen:
Option 1:
- Dateinamenzeichen auf die Codepage des Systems beschränken (z. B. CP437 in Ihrem Fall)
- Diese Option schränkt die Verwendung vietnamesischer Zeichen ein.
Option 2:
- Ändern Sie die Codepage des Systems auf Vietnamesisch (z. B. CP1258). )
- Konvertieren Sie den Dateinamen in die neue Codepage (z. B. $fn2 = iconv("UTF-8","cp1258", $base_dir.$fn);)
- Diese Option auch beschränkt Dateinamenzeichen auf die vietnamesische Codepage 1258.
Nachteile beider Optionen:
-
Option 1: Unfähigkeit Bestimmte vietnamesische Zeichen verwenden
-
Option 2: Anforderung zum Ändern der Systemcodepage und Einschränkungen für Dateinamenzeichen
Zusätzliche Informationen zum Ändern der Systemcodepage
So ändern Sie die Codepage des Systems:
- Navigieren Sie zu Systemsteuerung > Region
- Wählen Sie die Registerkarte „Verwaltung“ aus
- Klicken Sie unter „Sprache für Nicht-Unicode-Programme“ auf die Schaltfläche „Systemgebietsschema ändern“
- Wählen Sie „Vietnamesisch (Vietnam)“ aus dem Dropdown-Menü
Das obige ist der detaillierte Inhalt vonWie kann ich UTF-8-Dateinamen in PHP unter Windows verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn