Wie lade ich vietnamesische Dateien mit UTF-8-codierten Dateinamen in PHP hoch?

Linda Hamilton
Freigeben: 2024-10-31 13:17:01
Original
870 Leute haben es durchsucht

How to Upload Vietnamese Files with UTF-8 Encoded Filenames in PHP?

PHP – Codierung von UTF-8-Dateinamen beim Hochladen

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!