Les caractères vietnamiens dans les noms de fichiers peuvent poser un problème lors du téléchargement lors de l'utilisation de PHP. Explorons une solution pour garantir une gestion correcte des noms de fichiers UTF-8.
Considérez le code suivant :
<code class="php">$base_dir = "D:/"; $fn = $_FILES["upload"]["name"]; $fn2 = $base_dir . $fn; move_uploaded_file($_FILES["upload"]["tmp_name"], $fn2);</code>
Ce code récupère le nom de fichier téléchargé, l'ajoute à un répertoire de base et le déplace le fichier à l’emplacement spécifié. Cependant, le nom de fichier résultant sur l'ordinateur local peut apparaître corrompu avec des caractères accentués remplacés par des codes de caractères.
Pour résoudre ce problème, nous devons convertir le nom de fichier UTF-8 en une page de codes compatible avec le nom de fichier local. système opérateur. Les systèmes Windows utilisent généralement une page de codes spécifique à la région ou aux paramètres de langue. La page de codes peut être déterminée à l'aide de la commande chcp dans l'invite de commande.
Solution 1 : convertir le nom de fichier en page de codes système
À l'aide de la fonction iconv, nous pouvons convertir le nom du fichier à la page de codes appropriée. Par exemple, si la page de codes système est 1258, nous pouvons utiliser le code suivant :
<code class="php">$fn2 = iconv("UTF-8", "cp1258", $base_dir . $fn);</code>
Solution 2 : Modifier la page de codes système
Une solution alternative est pour remplacer la page de codes système par la page de codes cible, généralement compatible UTF-8. Cela peut être fait en accédant au Panneau de configuration, en sélectionnant « Région » et en modifiant l'onglet « Administratif » vers les paramètres régionaux appropriés, tels que Vietnamien (Vietnam).
Une fois la page de codes du système modifiée, le nom du fichier téléchargé sera traité correctement et s'affichera avec les caractères UTF-8 intacts. Cependant, il est important de noter que cette solution peut affecter d'autres fonctions système qui dépendent de la page de codes, telles que l'impression et l'affichage de fichiers texte.
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!