Maison développement back-end Tutoriel Python Comment résoudre l'erreur lorsque Python 2.7 génère des chaînes chinoises ?

Comment résoudre l'erreur lorsque Python 2.7 génère des chaînes chinoises ?

Jun 28, 2017 pm 03:57 PM
中文 字符

Problème d'encodage lorsque Python 2.7 génère des chaînes chinoises

Pourquoi l'erreur « UnicodeEncodeError : le codec 'ascii' ne peut pas encoder les caractères en position 0-1 : ordinal pas dans la plage (128) » apparaît-il ? Cet article étudiera cette question.

La représentation interne des chaînes en Python est un codage Unicode. Par conséquent, lors de la conversion d'encodage, il est généralement nécessaire d'utiliser l'Unicode comme codage intermédiaire, c'est-à-dire de décoder d'abord les chaînes dans d'autres encodages en Unicode. , puis encodez d'Unicode vers un autre encodage.

La fonction du décodage est de convertir d'autres chaînes codées en codage Unicode, telles que str1.decode('gb2312'), ce qui signifie convertir la chaîne codée gb2312 str1 en codage Unicode.

La fonction de encode est de convertir le codage Unicode en d'autres chaînes codées, telles que str2.encode('gb2312'), ce qui signifie convertir la chaîne codée Unicode str2 en codage gb2312.

Par conséquent, lors du transcodage, vous devez d'abord comprendre quel est l'encodage de la chaîne str, puis la décoder en Unicode, puis l'encoder dans d'autres encodages

L'encodage par défaut de la chaîne dans le code est identique à L'encodage du fichier de code lui-même est cohérent.

Par exemple : s='Chinese'

Si elle est dans un fichier utf8, la chaîne est encodée en utf8. Si elle est dans un fichier gb2312, son encodage est gb2312. Dans ce cas, pour effectuer une conversion d'encodage, vous devez d'abord utiliser la méthode decode pour le convertir en encodage Unicode, puis utiliser la méthode encode pour le convertir en d'autres encodages. Habituellement, lorsqu'aucune méthode de codage spécifique n'est spécifiée, le fichier de code créé à l'aide du codage par défaut du système est utilisé.

Si la chaîne est définie comme ceci : s=u'Chinese'

L'encodage de la chaîne est spécifié comme Unicode, qui est l'encodage interne de Python, et est différent du fichier de code lui-même . L'encodage n'a rien à voir avec ça. Par conséquent, pour la conversion de l'encodage dans ce cas, il vous suffit d'utiliser directement la méthode encode pour la convertir vers l'encodage spécifié.

Si une chaîne est déjà unicode, une erreur se produira lors de son décodage, il est donc généralement nécessaire de juger si sa méthode d'encodage est unicode :

isinstance(s, unicode) #Utilisé Déterminer qu'il s'agisse d'unicode

L'utilisation d'un codage non-unicode str pour encoder signalera une erreur

Comment obtenir l'encodage par défaut du système ?

#!/usr/bin/env python
#coding=utf-8
import sys
print sys.getdefaultencoding()
Copier après la connexion

La sortie de ce programme sous Windows anglais La console de sortie elle-même ne peut pas afficher l'encodage de la chaîne, et ce n'est pas un problème avec le programme lui-même.

Si vous exécutez le code suivant dans UliPad :

, il vous demandera : UnicodeEncodeError : le codec 'ascii' ne peut pas encoder les caractères en position 0-1 : ordinal pas dans la plage ( 128) . En effet, la fenêtre de sortie des informations de la console d'UliPad sous Windows anglais
s=u"中文"
print s
Copier après la connexion

Changez la dernière phrase par : print s.encode('gb2312')

Le mot "Chinois" peut être correctement affiché.

Si la dernière phrase est modifiée par : print s.encode('utf8')

, alors le résultat est : xe4xb8xadxe6x96x87. C'est le résultat de la fenêtre de sortie des informations de la console affichant l'utf8. -chaîne codée selon le codage ascii.

unicode(str,'gb2312') et str.decode('gb2312') sont identiques, ils convertissent tous les deux la str encodée gb2312 en encodage unicode

Utiliser str.__class__ Vérifiez le formulaire d'encodage de str

Après avoir longuement parlé du principe, trouvons enfin une panacée :)

#!/usr/bin/env python #coding=utf-8 s="中文" if isinstance(s, unicode): #s=u"中文" print s.encode('gb2312') else: #s="中文" print s.decode('utf-8').encode('gb2312')
Copier après la connexion

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment définir le chinois dans le jeu mobile Call of Duty: Warzone Comment définir le chinois dans le jeu mobile Call of Duty: Warzone Mar 22, 2024 am 08:41 AM

Call of Duty Warzone est un jeu mobile récemment lancé. De nombreux joueurs sont très curieux de savoir comment définir la langue de ce jeu sur le chinois. En fait, c'est très simple. Il suffit aux joueurs de télécharger le pack de langue chinoise, puis vous pouvez le faire. modifiez-le après l'avoir utilisé. Le contenu détaillé peut être appris dans cette introduction à la méthode de réglage chinoise. Comment définir la langue chinoise pour le jeu mobile Call of Duty : Warzone 1. Entrez d'abord dans le jeu et cliquez sur l'icône des paramètres dans le coin supérieur droit de l'interface. 2. Dans la barre de menu qui apparaît, recherchez l'option [Télécharger] et cliquez dessus. 3. Sélectionnez [SIMPLIFIEDCHINESE] (chinois simplifié) sur cette page pour télécharger le package d'installation en chinois simplifié. 4. Revenir aux paramètres

Configurer le chinois avec VSCode : le guide complet Configurer le chinois avec VSCode : le guide complet Mar 25, 2024 am 11:18 AM

Configuration de VSCode en chinois : un guide complet Dans le développement de logiciels, Visual Studio Code (VSCode en abrégé) est un environnement de développement intégré couramment utilisé. Pour les développeurs qui utilisent le chinois, la configuration de VSCode sur l'interface chinoise peut améliorer l'efficacité du travail. Cet article vous fournira un guide complet, détaillant comment définir VSCode sur une interface chinoise et fournissant des exemples de code spécifiques. Étape 1 : Téléchargez et installez le pack de langue. Après avoir ouvert VSCode, cliquez sur la gauche.

Comment configurer le tableau Excel pour afficher le chinois ? Tutoriel sur les opérations de commutation en chinois avec Excel Comment configurer le tableau Excel pour afficher le chinois ? Tutoriel sur les opérations de commutation en chinois avec Excel Mar 14, 2024 pm 03:28 PM

La feuille de calcul Excel est l'un des logiciels de bureau que de nombreuses personnes utilisent actuellement. Certains utilisateurs, parce que leur ordinateur est un système Win11, donc l'interface anglaise s'affiche, ils souhaitent passer à l'interface chinoise, mais ils ne savent pas comment l'utiliser. Pour résoudre ce problème, ce problème L'éditeur est là pour répondre aux questions de tous les utilisateurs. Jetons un coup d'œil au contenu partagé dans le didacticiel du logiciel d'aujourd'hui. Tutoriel pour passer d'Excel au chinois : 1. Entrez dans le logiciel et cliquez sur l'option "Fichier" sur le côté gauche de la barre d'outils en haut de la page. 2. Sélectionnez « options » parmi les options ci-dessous. 3. Après être entré dans la nouvelle interface, cliquez sur l'option « langue » à gauche

Comment afficher correctement les caractères chinois en PHP Dompdf Comment afficher correctement les caractères chinois en PHP Dompdf Mar 05, 2024 pm 01:03 PM

Comment afficher correctement les caractères chinois dans PHPDompdf Lorsque vous utilisez PHPDompdf pour générer des fichiers PDF, il est courant de rencontrer le problème des caractères chinois tronqués. En effet, la bibliothèque de polices utilisée par Dompdf ne contient pas de jeux de caractères chinois. Afin d'afficher correctement les caractères chinois, nous devons définir manuellement la police de Dompdf et nous assurer de sélectionner une police prenant en charge les caractères chinois. Voici quelques étapes spécifiques et exemples de code pour résoudre ce problème : Étape 1 : Téléchargez le fichier de police chinoise Tout d'abord, nous avons besoin

Un moyen efficace de corriger les caractères chinois tronqués dans PHP Dompdf Un moyen efficace de corriger les caractères chinois tronqués dans PHP Dompdf Mar 05, 2024 pm 04:45 PM

Titre : Un moyen efficace de réparer les caractères chinois tronqués dans PHPDompdf Lorsque vous utilisez PHPDompdf pour générer des documents PDF, les caractères chinois tronqués sont un problème courant. Ce problème vient généralement du fait que Dompdf ne prend pas en charge les jeux de caractères chinois par défaut, ce qui entraîne un affichage incorrect du contenu chinois. Afin de résoudre ce problème, nous devons adopter des moyens efficaces pour résoudre le problème chinois tronqué de PHPDompdf. 1. Utilisez des fichiers de polices personnalisés. Un moyen efficace de résoudre le problème des caractères chinois tronqués dans Dompdf consiste à utiliser.

Est-ce que wwe2k24 aura du chinois ? Est-ce que wwe2k24 aura du chinois ? Mar 13, 2024 pm 04:40 PM

"WWE2K24" est un jeu de sports de course créé par Visual Concepts et sorti officiellement le 9 mars 2024. Ce jeu a été très apprécié et de nombreux joueurs souhaitent vivement savoir s'il aura une version chinoise. Malheureusement, jusqu'à présent, "WWE2K24" n'a pas encore lancé de version en langue chinoise. wwe2k24 sera-t-il en chinois ? Réponse : Le chinois n'est pas actuellement pris en charge. La version standard de WWE2K24 dans la région chinoise de Steam est au prix de 199 yuans, la version de luxe est de 329 yuans et l'édition commémorative est de 395 yuans. Le jeu a des exigences de configuration relativement élevées et il existe certaines normes en termes de processeur, de carte graphique ou de mémoire opérationnelle. Configuration officielle recommandée et introduction à la configuration minimale :

Comment définir la langue de Windows 7 sur le chinois Comment définir la langue de Windows 7 sur le chinois Dec 21, 2023 pm 10:07 PM

Certains amis peuvent accidentellement le régler en anglais lors de l'installation du système. Par conséquent, toutes les interfaces sont modifiées en anglais et ne peuvent pas être comprises. En fait, nous pouvons définir la langue dans le panneau de configuration et changer la langue en chinois. Voyons comment la changer. Comment changer la langue dans Win7 en chinois 1. Cliquez d'abord sur le bouton dans le coin inférieur gauche de l'écran, puis sélectionnez "Panneau de configuration" 2. Recherchez "Changedispalylangue" sous "Horloge, langue et région" 3. Cliquez sur " Anglais" ci-dessous pour sélectionner dans le menu déroulant Chinois simplifié. 4. Après confirmation, cliquez sur « Se déconnecter maintenant » pour vous déconnecter et redémarrer l'ordinateur. 5. Après mon retour

Conseils pour résoudre les caractères chinois tronqués lors de l'écriture de fichiers txt avec PHP Conseils pour résoudre les caractères chinois tronqués lors de l'écriture de fichiers txt avec PHP Mar 27, 2024 pm 01:18 PM

Conseils pour résoudre les caractères chinois tronqués écrits par PHP dans des fichiers txt Avec le développement rapide d'Internet, PHP, en tant que langage de programmation largement utilisé, est utilisé par de plus en plus de développeurs. Dans le développement PHP, il est souvent nécessaire de lire et d'écrire des fichiers texte, y compris des fichiers txt qui écrivent du contenu chinois. Cependant, en raison de problèmes de format d'encodage, le chinois écrit apparaîtra parfois tronqué. Cet article présentera quelques techniques pour résoudre le problème des caractères chinois tronqués écrits dans des fichiers txt par PHP et fournira des exemples de code spécifiques. Analyse de problèmes en PHP, texte

See all articles