Encodage Python traitement-str et Unicode
Un bon article sur STR et UNICODE
Organisation du contenu lié au codage python
Remarque : la discussion suivante concerne la version Python2.x, Py3k est à essayer
Démarrer
Lorsque vous utilisez python pour traiter le chinois, lire des fichiers ou des messages, des paramètres http, etc.
Dès que je l'exécute, des caractères tronqués sont trouvés (traitement de chaînes, lecture Écrire un fichier, imprimer)
Ensuite, ce que la plupart des gens font est d'appeler encode/decode pour le débogage, sans penser clairement à la raison pour laquelle les caractères tronqués apparaissent
Donc le erreurs les plus courantes lors du débogage
Erreur 1
Traceback (dernier appel le plus récent) : Fichier "
Erreur 2
Traceback (dernier appel le plus récent) : Fichier "
Tout d'abord
Vous devez avoir un concept général, comprendre le jeu de caractères, l'encodage des caractères
ASCII Unicode | -8 | etc.
Notes sur l'encodage des caractères : ASCII, Unicode et UTF-8
Blog Taobao Search Technology - Discussion sur le codage chinois
str et unicode
à la fois str et unicode C'est une sous-classe de basestring
, il existe donc une méthode pour déterminer s'il s'agit d'une chaîne
def is_str(s) : return isinstance(s, basestring)
conversion str et unicode
décoder le document
encoder le document
str -> decode('the_coding_of_str') -> unicode unicode -> ; encode('the_coding_you_want') -> str
Différence
str est une chaîne d'octets, codée par la méthode de déclaration unicode
composée d'octets
s = 'Chinese' s = u'中文'.encode('utf-8' ) >>> type( 'Chinese')
Trouver la longueur (renvoie le nombre d'octets)
>>> u'中文'.encode('utf-8') 'xe4xb8xadxe6x96x87' >>>
Méthode de déclaration
s = u'中文' s = '中文'.decode('utf -8') s = unicode('Chinese', 'utf-8') >>> type(u'Chinese')
>>>中文'u'u4e2du6587'>>>len(u'Chinois') 2
Conclusion
Découvrez si vous souhaitez pour traiter str ou unicode et utiliser la bonne méthode de traitement (str.decode/unicode .encode)Ce qui suit est une méthode pour déterminer s'il s'agit d'unicode/str>> > isinstance(u'中文', unicode) True >>> isinstance('Chinois', unicode) False >>> isinstance('Chinois', str) True >>> u'中文', str) False#s est le str s de code_A'.encode('code_B')
Traitement de fichiers, IDE et console
le flux de traitement peut être utilisé comme ça, pensez à python comme un Pool, une entrée, une sortie
A l'entrée, tout est converti en unicode, à la sortie, tout est converti en unicode, et à la sortie, c'est converti dans l'encodage cible (bien sûr, il y a des exceptions, l'encodage spécifique doit être utilisé dans la situation logique de traitement)
Lire les fichiers, encodage d'entrée externe, décoder en Unicode, traiter (encodage interne, Unicode unifié), encoder en encodage cible requis, écrire dans la sortie cible (fichier ou console)
IDE et contrôle La raison en est que lors de l'impression, l'encodage est incohérent avec le propre encodage de l'EDI, ce qui entraîne
Lors de la sortie, convertissez l'encodage en un encodage cohérent et la sortie peut être normale. 🎜>>>> imprimer u '中文'.encode('gbk') ???? >>> imprimer u'中文'.encode('utf-8') 中文
Il est recommandé de standardiser l'encodage
standardiser l'encodage
unifier l'encodage pour éviter les codes tronqués causés par un certain lien
Codage d'environnement, IDE/éditeur de texte, codage de fichiers, codage de table de base de données
Assurer le codage du fichier source du code
C'est très important
Le codage par défaut des fichiers py est ASCII Dans le fichier de code source, si des caractères non-ASCII sont utilisés, une déclaration de codage doit être. fait dans l'en-tête du fichier
S'il n'est pas déclaré, la saisie en non-ASCII entraînera. Les erreurs rencontrées doivent être placées sur la première ou la deuxième ligne du fichier Fichier "XXX.py" , ligne 3 SyntaxError : Caractère non-ASCII 'xd6' dans le fichier c.py à la ligne 3, mais aucun encodage déclaré voir http://www.php.cn/ pour plus de détailsMéthode de déclaration
# -*- coding: utf-8 -*- ou #coding=utf-8
Si l'en-tête déclare coding=utf-8, a = 'Chinese' c'est l'encodage est utf-8
Après avoir terminé les étapes ci-dessus, il vous suffit de faire attention à deux unicodes et à l'encodage que vous avez défini (généralement utilisez utf-8)
Ordre de traitement
1. Décoder tôt 2. Unicode partout 3. Encoder plus tard
Modules associés et certains méthodes
>>> import sys >>> ; reload(sys)
En python, encoder directement une certaine chaîne d'encodage dans une autre str d'encodage
'Obtention et définition de l'encodage par défaut du système' est lié à str.encode ici, mais je l'utilise rarement comme ça, principalement parce que cela me semble. compliqué et incontrôlable, ou il est plus facile d'entrer un décodage clair et de sortir un encodage clair Certains (vues personnelles)
>. ;>> importer chardet >>> f = open( 'test.txt','r') >>> résultat = chardet.detect(f.read()) >>> ; résultat {'confidence' : 0,99, 'encoding' : 'utf-8 '}
u chaîne vers la chaîne Unicode correspondante
>> > u'中' u'u4e2d' >>> ; s = 'u4e2d' >>> imprimer s.decode('unicode_escape') dans >>>
Ce qui précède est la collecte d'informations sur l'encodage Python traitement. Nous continuerons à ajouter des informations pertinentes à l'avenir. Merci pour votre soutien à ce site !
Pour plus d'articles sur l'encodage Python Processing-Str et Unicode, veuillez prêter attention au site Web PHP chinois !
Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Cet article expliquera comment améliorer les performances du site Web en analysant les journaux Apache dans le système Debian. 1. Bases de l'analyse du journal APACH LOG enregistre les informations détaillées de toutes les demandes HTTP, y compris l'adresse IP, l'horodatage, l'URL de la demande, la méthode HTTP et le code de réponse. Dans Debian Systems, ces journaux sont généralement situés dans les répertoires /var/log/apache2/access.log et /var/log/apache2/error.log. Comprendre la structure du journal est la première étape d'une analyse efficace. 2.

Python excelle dans les jeux et le développement de l'interface graphique. 1) Le développement de jeux utilise Pygame, fournissant des fonctions de dessin, audio et d'autres fonctions, qui conviennent à la création de jeux 2D. 2) Le développement de l'interface graphique peut choisir Tkinter ou Pyqt. Tkinter est simple et facile à utiliser, PYQT a des fonctions riches et convient au développement professionnel.

PHP et Python ont chacun leurs propres avantages et choisissent en fonction des exigences du projet. 1.Php convient au développement Web, en particulier pour le développement rapide et la maintenance des sites Web. 2. Python convient à la science des données, à l'apprentissage automatique et à l'intelligence artificielle, avec syntaxe concise et adaptée aux débutants.

La fonction ReadDir dans le système Debian est un appel système utilisé pour lire le contenu des répertoires et est souvent utilisé dans la programmation C. Cet article expliquera comment intégrer ReadDir avec d'autres outils pour améliorer sa fonctionnalité. Méthode 1: combinant d'abord le programme de langue C et le pipeline, écrivez un programme C pour appeler la fonction readdir et sortir le résultat: # include # include # include # includeIntmain (intargc, char * argv []) {dir * dir; structDirent * entrée; if (argc! = 2) {

Cet article traite de la méthode de détection d'attaque DDOS. Bien qu'aucun cas d'application directe de "Debiansniffer" n'ait été trouvé, les méthodes suivantes ne peuvent être utilisées pour la détection des attaques DDOS: technologie de détection d'attaque DDOS efficace: détection basée sur l'analyse du trafic: identification des attaques DDOS en surveillant des modèles anormaux de trafic réseau, tels que la croissance soudaine du trafic, une surtension dans des connexions sur des ports spécifiques, etc. Par exemple, les scripts Python combinés avec les bibliothèques Pyshark et Colorama peuvent surveiller le trafic réseau en temps réel et émettre des alertes. Détection basée sur l'analyse statistique: en analysant les caractéristiques statistiques du trafic réseau, telles que les données

Pour maximiser l'efficacité de l'apprentissage de Python dans un temps limité, vous pouvez utiliser les modules DateTime, Time et Schedule de Python. 1. Le module DateTime est utilisé pour enregistrer et planifier le temps d'apprentissage. 2. Le module de temps aide à définir l'étude et le temps de repos. 3. Le module de planification organise automatiquement des tâches d'apprentissage hebdomadaires.

Cet article vous guidera sur la façon de mettre à jour votre certificat NGINXSSL sur votre système Debian. Étape 1: Installez d'abord CERTBOT, assurez-vous que votre système a des packages CERTBOT et Python3-CERTBOT-NGINX installés. Si ce n'est pas installé, veuillez exécuter la commande suivante: Sudoapt-getUpDaSuDoapt-GetInstallCertBotpyThon3-Certerbot-Nginx Étape 2: Obtenez et configurez le certificat Utilisez la commande Certbot pour obtenir le certificat LETSCRYPT et configure

La configuration d'un serveur HTTPS sur un système Debian implique plusieurs étapes, notamment l'installation du logiciel nécessaire, la génération d'un certificat SSL et la configuration d'un serveur Web (tel qu'Apache ou Nginx) pour utiliser un certificat SSL. Voici un guide de base, en supposant que vous utilisez un serveur Apacheweb. 1. Installez d'abord le logiciel nécessaire, assurez-vous que votre système est à jour et installez Apache et OpenSSL: SudoaptupDaSuDoaptupgradeSudoaptinsta
