Maison > Article > développement back-end > Solution au problème des fichiers de noms chinois tronqués dans Python2
Python2 ne prend pas en charge le chinois par défaut. Généralement, on ajoute #-*-coding:utf-8-*- au début du programme pour résoudre ce problème, mais lorsque j'utilise l'open. () Lors de l'ouverture du fichier, le nom chinois s'affiche sous forme de caractères tronqués.
Permettez-moi d'abord de parler des problèmes d'encodage en Python. Les chaînes en Python sont grossièrement divisées en deux formes : str et Unicode. Les types d'encodage de str couramment utilisés sont utf-8, gb2312, gbk, etc. ., Python utilise Unicode comme type de base pour l'encodage. Ce que str enregistre est un tableau d'octets, qui est juste un certain format de stockage de codage. Le format dans lequel il est finalement sorti dans un fichier ou imprimé dépend entièrement de la façon dont il est décodé par le codage de décodage. Unicode est un jeu de symboles similaire au codage abstrait ; , qui stipule uniquement le code binaire du symbole, mais ne précise pas comment ce code binaire doit être stocké, c'est-à-dire qu'il ne s'agit que d'une représentation interne et ne peut pas être enregistré directement, un formulaire de stockage doit donc être spécifié lors du stockage, tel. comme utf-8 attendez.
Les fonctions de conversion d'encodage en Python sont :
decode(char_set) pour implémenter le décodage de char_set en Unicodeencode(char_set) pour implémenter l'encodage d'Unicode en char_set
En regardant la documentation Python, vous trouverez :
Dans cette méthode open(filename, 'w' ), le nom de fichier de paramètres doit être des paramètres codés Unicode.
J'ai ajouté #-*-coding:utf-8-*- avant de définir l'encodage sur utf-8. Lors de l'appel de cette méthode pour transmettre des paramètres, le nom de fichier variable doit être décodé en Unicode. .
Par exemple, filename='Chinese.txt', lorsque vous utilisez open(), écrivez open(filename.decode('utf-8'), 'w') comme ceci, pour que le nom du fichier chinois créé ne sera pas tronqué Problème.
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!