Umgang mit UTF-8-Dateinamen in den Dateisystemfunktionen von PHP
Beim Erstellen von Ordnern mit UTF-8-Zeichen mithilfe der mkdir-Funktion von PHP kann es zu Anzeige kommen Probleme im Windows Explorer aufgrund von Codierungsinkompatibilitäten.
Lösung: URL Dateinamen kodieren
Um dieses Problem zu beheben, verwenden Sie die URL-Code-Funktion, um den gewünschten Ordnernamen in ein URL-sicheres Format zu konvertieren, bevor Sie ihn an mkdir übergeben:
$dir_name = urlencode("Depósito"); mkdir($dir_name);
Dadurch wird sichergestellt Alle Zeichen im Ordnernamen werden in gültige Dateinamen für alle Betriebssysteme kodiert. Um den ursprünglichen UTF-8-Dateinamen abzurufen, verwenden Sie urldecode.
Alternative Lösungen (mit Einschränkungen)
Während die URL-Codierung die empfohlene Lösung ist, gibt es weniger attraktive Alternativen:
Konvertieren nach ISO-8859-1 (Windows Nur)
Unter Windows können Sie mit UTF-8-Dateinamen arbeiten, beachten Sie jedoch, dass Nicht-ASCII-Zeichen außerhalb von PHP falsch angezeigt werden. Um dieses Problem zu beheben, konvertieren Sie Dateinamen mit utf8_decode in ISO-8859-1, bevor Sie sie in Dateisystemfunktionen verwenden.
Auf ISO-8859-1-Zeichen beschränken
Alternativ: Beschränken Sie Dateinamen auf Zeichen, die in ISO-8859-1 darstellbar sind. Verwenden Sie utf8_decode und utf8_encode, um Dateinamen zwischen UTF-8 und ISO-8859-1 zu konvertieren.
Diese Alternativen sind jedoch mit Einschränkungen verbunden:
Das obige ist der detaillierte Inhalt vonWie kann ich UTF-8-Dateinamen in den Dateisystemfunktionen von PHP verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!