PHP - Gestion des noms de fichiers UTF-8 sous Windows
Énoncé du problème
Le téléchargement de fichiers avec des noms de fichiers codés en UTF-8 entraîne des caractères déformés sous Windows.
Solution proposée
La proposition originale pour résoudre ce problème impliquait l'utilisation de la fonction iconv() pour convertir le nom de fichier en une page de codes compatible avec le système Windows, telle que CP1258. Cependant, cette approche a des limites.
Solution mise à jour
En réalité, les fonctions du système de fichiers PHP ne peuvent gérer que les caractères qui se trouvent dans la page de codes active du système. Par conséquent, deux solutions possibles se présentent :
Option 1 :
- Limiter les caractères du nom de fichier à la page de codes du système (par exemple, CP437 dans votre cas)
- Cette option limite l'utilisation des caractères vietnamiens.
Option 2 :
- Modifiez la page de codes du système en vietnamien (par exemple, CP1258 )
- Convertissez le nom de fichier en la nouvelle page de codes (par exemple, $fn2 = iconv("UTF-8","cp1258", $base_dir.$fn);)
- Cette option également limite les caractères du nom de fichier à la page de codes vietnamienne 1258.
Inconvénients des deux options :
-
Option 1 : Impossibilité de utiliser certains caractères vietnamiens
-
Option 2 : Obligation de modifier la page de codes du système et limitations sur les caractères du nom de fichier
Informations supplémentaires sur la modification de la page de codes du système
Pour modifier la page de codes du système :
- Accédez à Panneau de configuration > Région
- Sélectionnez l'onglet « Administratif »
- Sous « Langue pour les programmes non Unicode », cliquez sur le bouton « Modifier les paramètres régionaux du système »
- Sélectionnez « Vietnamien (Vietnam) » dans le menu déroulant
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!