Solution au nom de fichier tronqué des fichiers chinois téléchargés par PHP : ajoutez des instructions pertinentes au milieu de la balise head du fichier HTML pour garder l'encodage unifié. Le code est [
Solution au nom de fichier tronqué des fichiers chinois téléchargés par php :
Méthode 1 :Je suppose que mon système provoquera peut-être des caractères tronqués lors de la création de fichiers chinois, alors j'ai réécrit le code :
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/测试数据.txt");
Le le résultat a été créé avec succès sans caractères tronqués. En d'autres termes, ce n'est pas un problème de système
Pensez-y, mon fichier php lui-même est codé en utf8, puis l'instruction
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/测试数据.txt");
. doit être codé en utf8, alors le fichier téléchargé avant Le nom n'est certainement pas codé en utf8, donc l'instruction suivante est définitivement fausse, car la chaîne source elle-même n'est pas codée en utf8 :
iconv("UTF-8","gbk//TRANSLIT",$_FILES["file"]["name"]);
Utilisez la fonction pour vérifier le encodage de la chaîne source :
$e=mb_detect_encoding($text, array(‘UTF-8’, ‘GBK’,’gb2312’));2 echo $e;
Le résultat est CP936, c'est-à-dire que l'encodage de la chaîne source est GBK
Essayez-le
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . iconv("gbk","UTF-8",$_FILES["file"]["name"]));
Le problème est résolu, pas plus. caractères tronqués
Méthode 2 :En fait, il existe une autre solution, qui est d'ajouter
au milieu de la balise head du fichier html pour que le l'encodage reste unifié et il n'est plus nécessaire de transcoder
Conclusion
L'utilisation de la fonction iconv peut résoudre le problème des noms de fichiers chinois tronqués . En fait, iconv peut résoudre divers problèmes tronqués causés par un encodage incohérent
Lorsque vous utilisez la fonction iconv, veuillez d'abord vérifier l'encodage de la chaîne source, sauf si vous avez déjà déterminé l'encodage. de la chaîne source.
Essayez de vous assurer que l'encodage de tous les codes est cohérent, utilisez la fonction iconv uniquement en dernier recours. >Essayez de vous plaindre, essayez de ne pas utiliser les noms de fichiers chinois comme noms de fichiers enregistrés sur le serveur, veuillez convertir le nom du fichier en votre propre nom de fichier (même s'il est anglais). Veuillez également convertir le nom du fichier)
Recommandations d'apprentissage associées :
Programmation PHP du débutant au compétentCe 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!