Heim > Artikel > Backend-Entwicklung > Wie lade ich vietnamesische Dateien mit UTF-8-codierten Dateinamen in PHP hoch?
Vietnamesische Zeichen in Dateinamen können beim Hochladen ein Problem darstellen, wenn PHP verwendet wird. Lassen Sie uns eine Lösung untersuchen, um die ordnungsgemäße Handhabung von UTF-8-Dateinamen sicherzustellen.
Bedenken Sie den folgenden Code:
<code class="php">$base_dir = "D:/"; $fn = $_FILES["upload"]["name"]; $fn2 = $base_dir . $fn; move_uploaded_file($_FILES["upload"]["tmp_name"], $fn2);</code>
Dieser Code ruft den hochgeladenen Dateinamen ab, hängt ihn an ein Basisverzeichnis an und verschiebt ihn die Datei an den angegebenen Speicherort. Der resultierende Dateiname auf dem lokalen Computer erscheint jedoch möglicherweise beschädigt, da Akzentzeichen durch Zeichencodes ersetzt werden.
Um dies zu beheben, müssen wir den Dateinamen von UTF-8 in eine Codepage konvertieren, die mit dem lokalen Computer kompatibel ist Betriebssystem. Windows-Systeme verwenden normalerweise eine Codepage, die für die Region oder Spracheinstellungen spezifisch ist. Die Codepage kann mit dem Befehl chcp in der Eingabeaufforderung ermittelt werden.
Lösung 1: Dateinamen in Systemcodepage konvertieren
Mit der Funktion iconv können wir konvertieren den Dateinamen in die entsprechende Codepage umwandeln. Wenn die Systemcodepage beispielsweise 1258 ist, können wir den folgenden Code verwenden:
<code class="php">$fn2 = iconv("UTF-8", "cp1258", $base_dir . $fn);</code>
Lösung 2: Systemcodepage ändern
Eine alternative Lösung ist um die Systemcodepage in die Zielcodepage zu ändern, normalerweise eine UTF-8-kompatible. Dies kann erreicht werden, indem Sie zur Systemsteuerung navigieren, „Region“ auswählen und die Registerkarte „Verwaltung“ auf das entsprechende Gebietsschema ändern, z. B. Vietnamesisch (Vietnam).
Sobald die Systemcodepage geändert wurde, Der hochgeladene Dateiname wird korrekt behandelt und mit intakten UTF-8-Zeichen angezeigt. Es ist jedoch wichtig zu beachten, dass diese Lösung andere Systemfunktionen beeinträchtigen kann, die auf der Codepage basieren, wie z. B. das Drucken und Anzeigen von Textdateien.
Das obige ist der detaillierte Inhalt vonWie lade ich vietnamesische Dateien mit UTF-8-codierten Dateinamen in PHP hoch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!