[Introduction à Python3 Jour 14] Chapitre 7 Chaînes de caractères (7.1.1.1 à 7.1.1.4)

7.1.1.2 Codage et décodage UTF-8

Bon pour échanger des données avec le monde extérieur. Les deux moyens suivants sont nécessaires.

--Moyens d'encoder une chaîne en une chaîne d'octets

7.1.1.3 Encodage


#Encodage de chaîne()Le premier argument de la fonction est le nom du codage.
#Chaîne Unicode"\u2603"Remplacer
>>> snowman="\u2603"
>>> len(snowman)
1

#Encodez ce caractère Unicode dans une séquence d'octets.
>>> ds=snowman.encode("utf-8")
>>> len(ds)
3
>>> ds
b'\xe2\x98\x83'


#Une erreur se produira sauf si le caractère Unicode est également un caractère ASCII valide.
>>> ds=snowman.encode("ascii")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can not encode character '\u2603' in position 0: ordinal not in range(128)

#encode()La fonction a un deuxième argument pour la rendre moins susceptible de provoquer une exception de codage. La valeur par défaut fonctionne comme avant"strict"Ainsi, si un caractère autre que ASCII est utilisé, UnicodeEncodeError se produira.

#Supprimer les éléments non codés en spécifiant ignorer
>>> snowman.encode("ascii","ignore")
b``
#Caractères qui ne peuvent pas être encodés à l'aide de replace?Remplacer par
>>> snowman.encode("ascii","replace")
b`?`
#unicode-Générez une chaîne Python Unicode au format d'échappement.
>>> snowman.encode("ascii","backslashreplace")
b`\\u2603`
#Générez une chaîne d'entités pouvant être utilisées sur des pages Web.
>>> snowman.encode("ascii","xmlcharrefreplace")
b`&#9731;`

7.1.1.4 Décodage

#valeur`café`Créer une chaîne Unicode pour
>>> place = "caf\u00e9"
>>> place
`café`
>>> type(place)
<class `str`>
#UTF-Encodez en 8 formats et placez_Affectez à la variable bytes.
>>> place_bytes=place.encode("utf-8")
#place_Notez que les octets font 5 octets
#Les 3 premiers octets sont les mêmes que ASCII(UTF-8 avantages)Chaque caractère est codé avec 1 octet, et le dernier é est codé avec 2 octets.
>>> place_bytes
b`caf\xc3\xa9`
>>> type(place_bytes)
<class `bytes`>

>>> place2=place_bytes.decode("utf-8")
>>> place2
`café`
#Le décodeur ASCII renvoie une erreur car la valeur d'octet 0xc3 n'est pas valide en ASCII.
>>> place3=place_bytes.decode("ascii")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeDecodeError: `ascii` codec can`t decode byte 0xc3 in position 3: ordinal not in range(128)

#UTF autant que possible-Il est préférable d'utiliser 8 encodages.
>>> place4=place_bytes.decode("latin-1")
>>> place4
`café`
>>> place5=place_bytes.decode("windows-1252")
>>> place5
`café`

pause-café "À propos des chiffres et des lettres"

Exemple: Contenu du fichier JPG (caractères octets)

FFD8FFE0 00104A46 49460001 0101004B 004B0000 FFFE0094 56542D43 6F6D7072 65737320 28746D29 2058696E 67205465 63686E6F 6C6F6779 20436F72 702E0000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000FFDB 00840010 0B0C0E0C 0A100E0D 0E121110 131828

Impressions

Quand j'ai essayé le chapitre 7, c'est devenu une histoire de données, et les nombres binaires, les nombres hexadécimaux, l'intrication avec les octets, etc. sont sortis à la fois. J'ai étudié quand j'étais étudiant, mais je l'ai oublié, je vais donc le revoir petit à petit dans ce chapitre.

Les références

"Introduction à Python3 par Bill Lubanovic (publié par O'Reilly Japon)"

URL de référence http://zaq.g1.xrea.com/2sinsuu5.htm https://docs.python.org/ja/3/howto/unicode.html

Recommended Posts

[Introduction à Python3 Jour 13] Chapitre 7 Chaînes de caractères (7.1-7.1.1.1)
[Introduction à Python3 Jour 14] Chapitre 7 Chaînes de caractères (7.1.1.1 à 7.1.1.4)
[Introduction à Python3 Jour 15] Chapitre 7 Chaînes de caractères (7.1.2-7.1.2.2)
[Introduction à Python3 Day 21] Chapitre 10 Système (10.1 à 10.5)
[Introduction à Python3, jour 17] Chapitre 8 Destinations de données (8.1-8.2.5)
[Introduction à Python3, jour 17] Chapitre 8 Destinations de données (8.3-8.3.6.1)
[Introduction à Python3 Jour 19] Chapitre 8 Destinations de données (8.4-8.5)
[Introduction à Python3 Day 18] Chapitre 8 Destinations de données (8.3.6.2 à 8.3.6.3)
[Introduction à Python3 Jour 3] Chapitre 2 Composants Py: valeurs numériques, chaînes de caractères, variables (2.2 à 2.3.6)
[Introduction à Python3 Jour 2] Chapitre 2 Composants Py: valeurs numériques, chaînes de caractères, variables (2.1)
[Introduction à Python3 Jour 4] Chapitre 2 Composants Py: valeurs numériques, chaînes de caractères, variables (2.3.7 à 2.4)
[Introduction à Python3, jour 22] Chapitre 11 Traitement parallèle et mise en réseau (11.1 à 11.3)
[Introduction à Python3 Jour 11] Chapitre 6 Objets et classes (6.1-6.2)
[Introduction à Python3, Jour 23] Chapitre 12 Devenir un Paisonista (12.1 à 12.6)
[Introduction à Python3 Jour 20] Chapitre 9 Démêler le Web (9.1-9.4)
[Introduction à Python3 Jour 8] Chapitre 4 Py Skin: Structure du code (4.1-4.13)
[Introduction à Python3 Jour 1] Programmation et Python
[Introduction à l'application Udemy Python3 +] 11. Chaîne de caractères
Introduction à la vérification de l'efficacité Chapitre 1 écrit en Python
Introduction au langage Python
Introduction à OpenCV (python) - (2)
[Introduction à Python3 Jour 7] Chapitre 3 Outils Py: Listes, Taples, Dictionnaires, Ensembles (3.3-3.8)
[Introduction à Python3 Jour 10] Chapitre 5 Boîte cosmétique de Py: modules, packages, programmes (5.4-5.7)
[Introduction à Python3 Jour 9] Chapitre 5 Boîte cosmétique de Py: modules, packages, programmes (5.1-5.4)
[Introduction à Python3 Jour 6] Chapitre 3 Liste des outils Py, tapple, dictionnaire, set (3.2.7-3.2.19)
Introduction à la vérification de l'efficacité Chapitre 3 écrit en Python
Introduction à la vérification de l'efficacité Chapitre 2 écrit en Python
Introduction à Python Django (2) Win
Introduction à la communication série [Python]
[Introduction à Python] <liste> [modifier le 22/02/2020]
Introduction à Python (version Python APG4b)
Une introduction à la programmation Python
Introduction à Python pour, pendant
[Chapitre 5] Introduction à Python avec 100 coups de traitement du langage
[Chapitre 3] Introduction à Python avec 100 coups de traitement du langage
[Chapitre 2] Introduction à Python avec 100 coups de traitement du langage
[Livre technique] Introduction à l'analyse de données avec Python -1 Chapitre Introduction-
[Chapitre 4] Introduction à Python avec 100 coups de traitement du langage
[Présentation de l'application Udemy Python3 +] 58. Lambda
[Présentation de l'application Udemy Python3 +] 31. Commentaire
Introduction à la bibliothèque de calcul numérique Python NumPy
Entraine toi! !! Introduction au type Python (conseils de type)
[Présentation de l'application Udemy Python3 +] 57. Décorateur
[Introduction à Python] Comment analyser JSON
[Présentation de l'application Udemy Python3 +] 56. Clôture
Introduction à Protobuf-c (langage C ⇔ Python)
[Présentation de l'application Udemy Python3 +] 59. Générateur
[Introduction à Python] Utilisons les pandas
[Introduction à Python] Utilisons les pandas
[Introduction à l'application Udemy Python3 +] Résumé
Python Jour 1
Introduction à l'analyse d'image opencv python
[Introduction à Python] Utilisons les pandas
Premiers pas avec Python pour les non-ingénieurs
Introduction à Python Django (2) Édition Mac
[AWS SAM] Présentation de la version Python
[Tutoriel Python] Une introduction facile à Python
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitre 10 Introduction à Cupy
J'ai lu "Renforcer l'apprentissage avec Python de l'introduction à la pratique" Chapitre 1
[Introduction à l'application Udemy Python3 +] 12. Indexation et découpage des chaînes de caractères