Maison > développement back-end > tutoriel php > Comment gérer les noms de fichiers UTF-8 en PHP pour les téléchargements vietnamiens ?

Comment gérer les noms de fichiers UTF-8 en PHP pour les téléchargements vietnamiens ?

Barbara Streisand
Libérer: 2024-10-30 12:10:26
original
1080 Les gens l'ont consulté

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

PHP - Gestion des noms de fichiers UTF-8 lors du téléchargement

Lorsque vous traitez des téléchargements contenant des noms de fichiers UTF-8, il peut être difficile de s'assurer que les caractères sont conservés avec précision. Ceci est particulièrement pertinent pour les langues comme le vietnamien qui utilisent des signes diacritiques et des caractères non latins.

En PHP, la gestion des noms de fichiers UTF-8 nécessite des considérations particulières, car les fonctions du système de fichiers peuvent ne pas les prendre en charge de manière native. Comme le montre l'exemple de code fourni :

<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>
Copier après la connexion

Ce code tente de télécharger un fichier nommé vietnamien, "Tên Tệp Tiếng Việt.JPG". Cependant, une fois téléchargé, le nom du fichier résultant sur l'ordinateur est rendu comme "Tên Tệp Tiếng Việt.JPG" en raison d'une gestion incorrecte des caractères.

Pour résoudre ce problème, il est Il est nécessaire de convertir le nom du fichier en page de codes du système avant de le gérer dans les fonctions du système de fichiers PHP. La page de codes est un paramètre qui définit les caractères disponibles dans le système d'exploitation.

En fonction de votre système d'exploitation spécifique et de sa page de codes par défaut, il existe deux solutions potentielles :

Option 1 : Limiter les caractères du nom de fichier

Cela implique de limiter les caractères du nom de fichier à ceux pris en charge par la page de codes du système, généralement ASCII (437) dans votre cas. Bien que cela garantisse que le nom de fichier est préservé avec précision, cela restreint l'utilisation de certains caractères vietnamiens.

Option 2 : Modifier la page de code système

Cela nécessite de modifier le code système. page en vietnamien (1258) via les paramètres régionaux du Panneau de configuration. Une fois la modification effectuée, convertissez le nom de fichier en CP1258, ce qui permet une gestion appropriée par les fonctions du système de fichiers PHP.

<code class="php">$fn2 = iconv("UTF-8","cp1258", $base_dir . $fn);</code>
Copier après la connexion

En choisissant l'une ou l'autre de ces approches, vous pouvez vous assurer que les noms de fichiers UTF-8 vietnamiens sont traités correctement. lors des téléchargements en PHP.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal