[Einführung in Python3 Tag 14] Kapitel 7 Zeichenfolgen (7.1.1.1 bis 7.1.1.4)

7.1.1.2 UTF-8-Codierung und -Decodierung

Gut für den Datenaustausch mit der Außenwelt. Die folgenden zwei Mittel sind erforderlich.

7.1.1.3 Codierung


#String codieren()Das erste Argument der Funktion ist der Codierungsname.
#Unicode-Zeichenfolge"\u2603"Ersatz
>>> snowman="\u2603"
>>> len(snowman)
1

#Codieren Sie dieses Unicode-Zeichen in eine Bytefolge.
>>> ds=snowman.encode("utf-8")
>>> len(ds)
3
>>> ds
b'\xe2\x98\x83'


#Ein Fehler tritt auf, es sei denn, das Unicode-Zeichen ist auch ein gültiges ASCII-Zeichen.
>>> 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()Die Funktion hat ein zweites Argument, um die Wahrscheinlichkeit einer Codierungsausnahme zu verringern. Der Standardwert funktioniert wie zuvor"strict"Wenn also ein anderes Zeichen als ASCII verwendet wird, tritt UnicodeEncodeError auf.

#Verwerfen Sie nicht codierte Elemente, indem Sie Ignorieren angeben
>>> snowman.encode("ascii","ignore")
b``
#Zeichen, die nicht durch Ersetzen codiert werden können?Ersetzen mit
>>> snowman.encode("ascii","replace")
b`?`
#unicode-Generieren Sie eine Python-Unicode-Zeichenfolge im Escape-Format.
>>> snowman.encode("ascii","backslashreplace")
b`\\u2603`
#Generieren Sie eine Zeichenfolge von Entitäten, die auf Webseiten verwendet werden können.
>>> snowman.encode("ascii","xmlcharrefreplace")
b`&#9731;`

7.1.1.4 Dekodierung

#Wert`café`Erstellen Sie eine Unicode-Zeichenfolge für
>>> place = "caf\u00e9"
>>> place
`café`
>>> type(place)
<class `str`>
#UTF-In 8 Formaten codieren und platzieren_Weisen Sie der Byte-Variablen zu.
>>> place_bytes=place.encode("utf-8")
#place_Beachten Sie, dass Bytes 5 Bytes sind
#Die ersten 3 Bytes entsprechen ASCII(UTF-8 Vorteile)Jedes Zeichen wird mit 1 Byte codiert, und das letzte é wird mit 2 Bytes codiert.
>>> place_bytes
b`caf\xc3\xa9`
>>> type(place_bytes)
<class `bytes`>

>>> place2=place_bytes.decode("utf-8")
>>> place2
`café`
#Der ASCII-Decoder gibt einen Fehler zurück, da der Bytewert 0xc3 in ASCII ungültig ist.
>>> 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 so viel wie möglich-Es ist vorzuziehen, 8 Codierungen zu verwenden.
>>> place4=place_bytes.decode("latin-1")
>>> place4
`café`
>>> place5=place_bytes.decode("windows-1252")
>>> place5
`café`

Kaffeepause "Über Zahlen und Buchstaben"

Beispiel: Inhalt der JPG-Datei (Bytezeichen)

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

Impressionen

Als ich Kapitel 7 ausprobierte, wurde es zu einer Geschichte von Daten, und Binärzahlen, Hexadezimalzahlen, Verschränkungen mit Bytes usw. kamen sofort heraus. Ich habe als Student studiert, aber ich habe es vergessen, deshalb werde ich es in diesem Kapitel nach und nach wiederholen.

Verweise

"Einführung in Python3 von Bill Lubanovic (veröffentlicht von O'Reilly Japan)"

Referenz-URL http://zaq.g1.xrea.com/2sinsuu5.htm https://docs.python.org/ja/3/howto/unicode.html

Recommended Posts

[Einführung in Python3 Tag 13] Kapitel 7 Zeichenfolgen (7.1-7.1.1.1)
[Einführung in Python3 Tag 14] Kapitel 7 Zeichenfolgen (7.1.1.1 bis 7.1.1.4)
[Einführung in Python3 Tag 15] Kapitel 7 Zeichenfolgen (7.1.2-7.1.2.2)
[Einführung in Python3 Tag 21] Kapitel 10 System (10.1 bis 10.5)
[Einführung in Python3, Tag 17] Kapitel 8 Datenziele (8.1-8.2.5)
[Einführung in Python3, Tag 17] Kapitel 8 Datenziele (8.3-8.3.6.1)
[Einführung in Python3 Tag 19] Kapitel 8 Datenziele (8.4-8.5)
[Einführung in Python3 Tag 18] Kapitel 8 Datenziele (8.3.6.2 bis 8.3.6.3)
[Einführung in Python3 Tag 3] Kapitel 2 Py-Komponenten: Numerische Werte, Zeichenfolgen, Variablen (2.2 bis 2.3.6)
[Einführung in Python3 Tag 2] Kapitel 2 Py-Komponenten: Numerische Werte, Zeichenfolgen, Variablen (2.1)
[Einführung in Python3 Tag 4] Kapitel 2 Py-Komponenten: Numerische Werte, Zeichenfolgen, Variablen (2.3.7 bis 2.4)
[Einführung in Python3, Tag 22] Kapitel 11 Parallele Verarbeitung und Vernetzung (11.1 bis 11.3)
[Einführung in Python3 Tag 11] Kapitel 6 Objekte und Klassen (6.1-6.2)
[Einführung in Python3, Tag 23] Kapitel 12 Werden Sie Paisonista (12.1 bis 12.6)
[Einführung in Python3 Tag 20] Kapitel 9 Enträtseln des Webs (9.1-9.4)
[Einführung in Python3 Tag 8] Kapitel 4 Py Skin: Codestruktur (4.1-4.13)
[Einführung in Python3 Tag 1] Programmierung und Python
[Einführung in die Udemy Python3 + -Anwendung] 11. Zeichenkette
Einführung in die Überprüfung der Wirksamkeit Kapitel 1 in Python geschrieben
Einführung in die Python-Sprache
Einführung in OpenCV (Python) - (2)
[Einführung in Python3 Tag 7] Kapitel 3 Py Tools: Listen, Taples, Wörterbücher, Mengen (3.3-3.8)
[Einführung in Python3 Tag 10] Kapitel 5 Py's Cosmetic Box: Module, Pakete, Programme (5.4-5.7)
[Einführung in Python3 Tag 9] Kapitel 5 Py's Cosmetic Box: Module, Pakete, Programme (5.1-5.4)
[Einführung in Python3 Tag 6] Kapitel 3 Py-Tool-Liste, Tapple, Wörterbuch, Set (3.2.7-3.2.19)
Einführung in die Überprüfung der Wirksamkeit Kapitel 3 in Python geschrieben
Einführung in die Überprüfung der Wirksamkeit Kapitel 2 in Python geschrieben
Einführung in Python Django (2) Win
Einführung in die serielle Kommunikation [Python]
[Einführung in Python] <Liste> [Bearbeiten: 22.02.2020]
Einführung in Python (Python-Version APG4b)
Eine Einführung in die Python-Programmierung
Einführung in Python For, While
[Kapitel 5] Einführung in Python mit 100 Klopfen Sprachverarbeitung
[Kapitel 3] Einführung in Python mit 100 Klopfen Sprachverarbeitung
[Kapitel 2] Einführung in Python mit 100 Klopfen Sprachverarbeitung
[Technisches Buch] Einführung in die Datenanalyse mit Python -1 Kapitel Einführung-
[Kapitel 4] Einführung in Python mit 100 Klopfen Sprachverarbeitung
[Einführung in die Udemy Python3 + -Anwendung] 58. Lambda
[Einführung in die Udemy Python3 + -Anwendung] 31. Kommentar
Einführung in die Python Numerical Calculation Library NumPy
Trainieren! !! Einführung in Python Type (Type Hints)
[Einführung in die Udemy Python3 + -Anwendung] 57. Decorator
[Einführung in Python] So analysieren Sie JSON
[Einführung in die Udemy Python3 + -Anwendung] 56. Abschluss
Einführung in Protobuf-c (C-Sprache ⇔ Python)
[Einführung in die Udemy Python3 + -Anwendung] 59. Generator
[Einführung in Python] Verwenden wir Pandas
[Einführung in Python] Verwenden wir Pandas
[Einführung in die Udemy Python3 + -Anwendung] Zusammenfassung
Python Tag 1
Einführung in die Bildanalyse opencv python
[Einführung in Python] Verwenden wir Pandas
Erste Schritte mit Python für Nicht-Ingenieure
Einführung in Python Django (2) Mac Edition
[AWS SAM] Einführung in die Python-Version
[Python Tutorial] Eine einfache Einführung in Python
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 8 Einführung in Numpy
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 10 Einführung in Cupy
Ich las "Das Lernen mit Python von der Einführung bis zur Praxis stärken", Kapitel 1
[Einführung in die Udemy Python3 + -Anwendung] 12. Indizieren und Schneiden von Zeichenketten