Maison développement back-end Tutoriel Python Problème de changement de format d'encodage Python

Problème de changement de format d'encodage Python

Apr 20, 2019 pm 02:27 PM
encoding python

J'écrivais un robot d'exploration Python aujourd'hui, et tout à coup, la page Web explorée était anormale et une erreur a été signalée : UnicodeEncodeError : le codec 'latin-1' ne peut pas encoder les caractères en position 41-50 : ordinal pas en range(256);UnicodeEncodeError : le codec 'ascii' ne peut pas encoder les caractères en ordinal, il s'agit d'un problème évident de format d'encodage. En fait, non seulement python2 ou 3, mais aussi d'autres langages de programmation comme Java et C, rencontrent souvent des problèmes avec les formats d'encodage, qui sont extrêmement compliqués, notamment la conversion entre ASCII, gbk, utf-8 et autres encodages. . J’ai donc cherché des informations, pratiqué la pratique et trouvé plusieurs méthodes comme celle-ci.

Tout d'abord, comment vérifier le format d'encodage du système et le format d'entrée et de sortie de python ?

Problème de changement de format d'encodage Python

>>> import sys
>>> sys.getdefaultencoding()# 系统默认编码格式
'UTF-8'
>>> sys.stdout.encoding# 输入输出格式
'US-ASCII'
Copier après la connexion

Dans ce cas, cela signifie que le codage d'entrée et de sortie de la ligne de commande actuelle est ascii, vous devez donc modifier manuellement la variable d'environnement LANG vers utf- 8 :

export LANG="en_US.UTF-8"
Copier après la connexion

Si vous êtes dans un environnement Ubuntu, vous pouvez ajouter la ligne de commande ci-dessus à ~/.bashrc pour résoudre le problème une fois pour toutes. Après l'avoir ajouté, exécutez. la commande suivante pour la rendre effective ou la redémarrer.

source ~/.bashrc
Copier après la connexion

Ou une autre méthode consiste à définir l'encodage correspondant uniquement pour python (comme ci-dessus, exécutez la ligne de commande ou ajoutez le fichier bashrc) :

PYTHONIOENCODING='utf_8'
export PYTHONIOENCODING
Copier après la connexion

image d'exemple d'encodage ggbk :

Problème de changement de format d'encodage Python

partie du diagramme de la table d'encodage ascii :

Problème de changement de format d'encodage Python

N'oubliez pas d'ajouter la ligne supérieure lors de la programmation :

# -*- coding: utf-8 -*-
Copier après la connexion

La configuration de l'encodage Python peut utiliser la ligne de commande, mais cela ne prend effet que dans cette session

>>>sys.getdefaultencoding()查看当前编码(若报错,先执行>>>import sys >>>reload(sys));
>>>sys.setdefaultencoding('utf8')设置编码
Copier après la connexion

Il est également possible de recharger le module SYS et de définir uft-8 dans le code du programme, cependant, l'erreur

import sys
reload(sys) 
sys.setdefaultencoding('utf8')
重启Python解释器,发现编码已被设置为utf8;
这是因为系统在Python启动的时候,自行调用该文件,设置系统的默认编码,而不需要每次都手动加上解决代码,属于一劳永逸的解决方法。
Copier après la connexion

sera affichée dans pycharm. Au cours du développement normal, nous savons tous utiliser Decode et Encode pour les opérations de transcodage.

Decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码。
Encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码。
Copier après la connexion

Dans la dernière version de Python 3, le type de chaîne est str, qui est représenté par Unicode en mémoire

Si vous souhaitez transmettre. sur le réseau ou enregistré sur le disque, str doit être converti en octets en octets.

Str exprimé en Unicode peut être codé en octets spécifiés via la méthode encode(), par exemple :

>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
>>> '中文'.encode('ascii')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: &#39;ascii&#39; codec can&#39;t encode characters in position 0-1: ordinal not in range(128)
Copier après la connexion

Lors de l'utilisation de chaînes, nous rencontrons souvent la conversion de str et d'octets . Afin d'éviter les caractères tronqués, vous devez toujours utiliser le codage UTF-8 pour convertir les chaînes et les octets.

Liens amicaux [Outil de conversion d'encodage UTF-8]

[Tutoriel vidéo Python3]

Il n'y en avait que quelques-uns formats d'encodage initialement En raison de la popularité des ordinateurs et de l'utilisation de nombreux pays ou organisations, les formats d'encodage sont devenus de plus en plus populaires, mais celui accepté au niveau international est toujours UTF-8, vous devez donc avoir de bonnes habitudes de programmation et utiliser UTF-8. format d'encodage plus souvent. Lorsque vous rencontrez des problèmes d’encodage, essayez de maintenir la cohérence du format d’encodage.

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)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
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)

HaDIDB: une base de données légère et évolutive horizontalement dans Python HaDIDB: une base de données légère et évolutive horizontalement dans Python Apr 08, 2025 pm 06:12 PM

HaDIDB: Une base de données Python évolutive de haut niveau légère HaDIDB (HaDIDB) est une base de données légère écrite en Python, avec un niveau élevé d'évolutivité. Installez HaDIDB à l'aide de l'installation PIP: PiPinStallHaDIDB User Management Créer un utilisateur: CreateUser () pour créer un nouvel utilisateur. La méthode Authentication () authentifie l'identité de l'utilisateur. FromHadidb.OperationMportUserUser_OBJ = User ("Admin", "Admin") User_OBJ.

Méthode de Navicat pour afficher le mot de passe de la base de données MongoDB Méthode de Navicat pour afficher le mot de passe de la base de données MongoDB Apr 08, 2025 pm 09:39 PM

Il est impossible de visualiser le mot de passe MongoDB directement via NAVICAT car il est stocké sous forme de valeurs de hachage. Comment récupérer les mots de passe perdus: 1. Réinitialiser les mots de passe; 2. Vérifiez les fichiers de configuration (peut contenir des valeurs de hachage); 3. Vérifiez les codes (May Code Hardcode).

Le plan Python de 2 heures: une approche réaliste Le plan Python de 2 heures: une approche réaliste Apr 11, 2025 am 12:04 AM

Vous pouvez apprendre les concepts de programmation de base et les compétences de Python dans les 2 heures. 1. Apprenez les variables et les types de données, 2. Flux de contrôle maître (instructions et boucles conditionnelles), 3. Comprenez la définition et l'utilisation des fonctions, 4. Démarrez rapidement avec la programmation Python via des exemples simples et des extraits de code.

Comment optimiser les performances MySQL pour les applications de haute charge? Comment optimiser les performances MySQL pour les applications de haute charge? Apr 08, 2025 pm 06:03 PM

Guide d'optimisation des performances de la base de données MySQL dans les applications à forte intensité de ressources, la base de données MySQL joue un rôle crucial et est responsable de la gestion des transactions massives. Cependant, à mesure que l'échelle de l'application se développe, les goulots d'étranglement des performances de la base de données deviennent souvent une contrainte. Cet article explorera une série de stratégies efficaces d'optimisation des performances MySQL pour garantir que votre application reste efficace et réactive dans des charges élevées. Nous combinerons des cas réels pour expliquer les technologies clés approfondies telles que l'indexation, l'optimisation des requêtes, la conception de la base de données et la mise en cache. 1. La conception de l'architecture de la base de données et l'architecture optimisée de la base de données sont la pierre angulaire de l'optimisation des performances MySQL. Voici quelques principes de base: sélectionner le bon type de données et sélectionner le plus petit type de données qui répond aux besoins peut non seulement économiser un espace de stockage, mais également améliorer la vitesse de traitement des données.

Python: Explorer ses applications principales Python: Explorer ses applications principales Apr 10, 2025 am 09:41 AM

Python est largement utilisé dans les domaines du développement Web, de la science des données, de l'apprentissage automatique, de l'automatisation et des scripts. 1) Dans le développement Web, les cadres Django et Flask simplifient le processus de développement. 2) Dans les domaines de la science des données et de l'apprentissage automatique, les bibliothèques Numpy, Pandas, Scikit-Learn et Tensorflow fournissent un fort soutien. 3) En termes d'automatisation et de script, Python convient aux tâches telles que les tests automatisés et la gestion du système.

Comment utiliser Aws Glue Crawler avec Amazon Athena Comment utiliser Aws Glue Crawler avec Amazon Athena Apr 09, 2025 pm 03:09 PM

En tant que professionnel des données, vous devez traiter de grandes quantités de données provenant de diverses sources. Cela peut poser des défis à la gestion et à l'analyse des données. Heureusement, deux services AWS peuvent aider: AWS Glue et Amazon Athena.

MySQL peut-il se connecter au serveur SQL MySQL peut-il se connecter au serveur SQL Apr 08, 2025 pm 05:54 PM

Non, MySQL ne peut pas se connecter directement à SQL Server. Mais vous pouvez utiliser les méthodes suivantes pour implémenter l'interaction des données: utilisez Middleware: Exporter les données de MySQL au format intermédiaire, puis importez-les sur SQL Server via Middleware. Utilisation de Database Linker: Business Tools fournit une interface plus conviviale et des fonctionnalités avancées, essentiellement encore implémentées via Middleware.

Comment démarrer le serveur avec redis Comment démarrer le serveur avec redis Apr 10, 2025 pm 08:12 PM

Les étapes pour démarrer un serveur Redis incluent: Installez Redis en fonction du système d'exploitation. Démarrez le service Redis via Redis-Server (Linux / MacOS) ou Redis-Server.exe (Windows). Utilisez la commande redis-Cli Ping (Linux / MacOS) ou redis-Cli.exe Ping (Windows) pour vérifier l'état du service. Utilisez un client redis, tel que redis-cli, python ou node.js pour accéder au serveur.

See all articles