Heim > Backend-Entwicklung > PHP-Tutorial > Wie gehe ich mit UTF-8-Dateinamen in PHP für vietnamesische Uploads um?

Wie gehe ich mit UTF-8-Dateinamen in PHP für vietnamesische Uploads um?

Barbara Streisand
Freigeben: 2024-10-30 12:10:26
Original
1048 Leute haben es durchsucht

How to Handle UTF-8 Filenames in PHP for Vietnamese Uploads?

PHP – Umgang mit UTF-8-Dateinamen beim Hochladen

Beim Umgang mit Uploads, die UTF-8-Dateinamen enthalten, kann es schwierig sein, dies sicherzustellen dass die Charaktere genau erhalten bleiben. Dies ist besonders relevant für Sprachen wie Vietnamesisch, die diakritische Zeichen und nicht-lateinische Zeichen verwenden.

In PHP erfordert der Umgang mit UTF-8-Dateinamen besondere Überlegungen, da Dateisystemfunktionen diese möglicherweise nicht nativ unterstützen. Wie im bereitgestellten Codebeispiel dargestellt:

<code class="php"><?php
    if(isset($_POST["submit"])) { 
       if($_FILES["upload"]["error"] > 0 ) echo "FILE ERROR!"; 
       else 
         { 
           $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 versucht, eine vietnamesisch benannte Datei „Tên Tệp Tiếng Việt.JPG“ hochzuladen. Beim Hochladen wird der resultierende Dateiname auf dem Computer jedoch aufgrund einer falschen Zeichenverarbeitung als „Tên Tệp Tiếng Việt.JPG“ gerendert.

Um dieses Problem zu beheben, ist es so Es ist erforderlich, den Dateinamen in die Codepage des Systems zu konvertieren, bevor er in PHP-Dateisystemfunktionen verarbeitet werden kann. Die Codepage ist eine Einstellung, die die verfügbaren Zeichen im Betriebssystem definiert.

Abhängig von Ihrem spezifischen Betriebssystem und seiner Standardcodepage gibt es zwei mögliche Lösungen:

Option 1: Dateinamenzeichen begrenzen

Dazu gehört die Beschränkung der Zeichen im Dateinamen auf diejenigen, die von der Systemcodepage unterstützt werden, in Ihrem Fall typischerweise ASCII (437). Dies stellt zwar sicher, dass der Dateiname korrekt erhalten bleibt, schränkt jedoch die Verwendung bestimmter vietnamesischer Zeichen ein.

Option 2: Systemcodepage ändern

Dazu ist eine Änderung des Systemcodes erforderlich Stellen Sie die Seite über die Regionaleinstellungen in der Systemsteuerung auf Vietnamesisch (1258) um. Sobald die Änderung vorgenommen wurde, konvertieren Sie den Dateinamen in CP1258, was eine ordnungsgemäße Verarbeitung durch PHP-Dateisystemfunktionen ermöglicht.

<code class="php">$fn2 = iconv("UTF-8","cp1258", $base_dir . $fn);</code>
Nach dem Login kopieren

Durch die Wahl eines dieser Ansätze können Sie sicherstellen, dass vietnamesische UTF-8-Dateinamen korrekt verarbeitet werden beim Hochladen in PHP.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit UTF-8-Dateinamen in PHP für vietnamesische Uploads um?. 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