[PYTHON] UnicodeDecodeError: Der Codec 'ascii' kann das Byte 0xa4 an Position 0 nicht dekodieren: Ordnungszahl nicht im Bereich (128)

Fazit

Zeichencode Zeichencode von "A" len('Ah')
unicode \u3042 1
euc-jp \xa4\xa2 2
utf-8 \xe3\x81\x82 3
Umwandlung Code Rückgabewert
euc-jp → unicode unicode('\xa4\xa2','euc-jp') u'\u3042'
euc-jp → unicode '\xa4\xa2'.decode('euc-jp') u'\u3042'
utf-8 → unicode unicode('\xe3\x81\x82','utf-8') u'\u3042'
utf-8 → unicode '\xe3\x81\x82'.decode('utf-8') u'\u3042'
unicode → euc-jp u'\u3042'.encode('euc-jp') '\xa4\xa2'
unicode → utf-8 u'\u3042'.encode('utf-8') '\xe3\x81\x82'
utf-8 → unicode → euc-jp unicode('\xe3\x81\x82','utf-8').encode('euc-jp') '\xa4\xa2'
utf-8 → unicode → euc-jp '\xe3\x81\x82'.decode('utf-8').encode('euc-jp') '\xa4\xa2'
euc-jp → unicode → utf-8 unicode('\xa4\xa2','euc-jp').encode('utf-8') '\xe3\x81\x82'
euc-jp → unicode → utf-8 '\xa4\xa2'.decode('euc-jp').encode('utf-8') '\xe3\x81\x82'

Unicode

Zum Zeitpunkt von Unicode


>>> string=u'Ah'
>>> string
u'\u3042'

EUC-JP -> Unicode

EUC-Zum Zeitpunkt von JP


>>> string='Ah'
>>> string
'\xa4\xa2'
>>> len(string)
2

Falsch


>>> unicode(string)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
UnicodeDecodeError: 'ascii' codec can't decode byte 0xa4 in position 0: ordinal not in range(128)

Positiv


>>> unicode(string,'euc-jp')
u'\u3042'

UTF -> Unicode

UTF-Um 8


>>> string='Ah'
>>> string
'\xe3\x81\x82'
>>> len(string)
3

Falsch


>>> unicode(string)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)

Positiv


>>> unicode(string,'utf-8')
u'\u3042'

Zeichencode-Konvertierungsfunktion und -methode

Konvertierungstyp Funktion oder Methode
Nicht-Unicode-Zeichenfolge → Unicode-Zeichenfolge unicode([Nicht-Unicode-Zeichenfolge], [Zeichencode], [errors='strict'])
Nicht-Unicode-Zeichenfolge → Unicode-Zeichenfolge Nicht-Unicode-Zeichenfolge.decode([Zeichencode], [errors='strict'])
Unicode-Zeichenfolge → Nicht-Unicode-Zeichenfolge Unicode-Zeichenfolge.encode([Zeichencode], [errors='strict'])

errors

unicode encode decode errors Inhalt
strict Wirf UnicodeDecodeError
replace U+FFFD,"ERSATZZEICHEN" hinzugefügt
ignore Entfernen Sie Zeichen aus der resultierenden Unicode-Zeichenfolge
× × xmlcharrefreplace Verwenden Sie XML-Zeichenreferenzen

Recommended Posts

UnicodeDecodeError: Der Codec 'ascii' kann das Byte 0xa4 an Position 0 nicht dekodieren: Ordnungszahl nicht im Bereich (128)
yum löst den Fehler "UnicodeDecodeError: 'ascii' Codec kann Byte 0xc3 in Position 15 nicht dekodieren: Ordnungszahl nicht im Bereich (128)" aus
Wenn der Codec das Byte nicht dekodieren kann, wird es in Python angezeigt
Mecab --UnicodeDecodeError: Der Codec 'utf8' kann kein Byte dekodieren
UnicodeDecodeError: Der Codec 'utf-8' kann das Byte 0x91 an Position 1 nicht dekodieren: Ungültiges Startbyte
SyntaxError: (Unicode-Fehler) Der Codec 'unicodeescape' kann keine Bytes an Position 2-3 dekodieren: abgeschnittenes \ UXXXXXXXX-Escape
UnicodeDecodeError: Der Codec 'ascii' kann das Byte 0xa4 an Position 0 nicht dekodieren: Ordnungszahl nicht im Bereich (128)
yum löst den Fehler "UnicodeDecodeError: 'ascii' Codec kann Byte 0xc3 in Position 15 nicht dekodieren: Ordnungszahl nicht im Bereich (128)" aus
Wenn der Codec das Byte nicht dekodieren kann, wird es in Python angezeigt
Der heutige Python-Fehler: UnicodeEncodeError: Der Codec 'ascii' kann keine Zeichen codieren
Der heutige Python-Fehler: UnicodeEncodeError: Der Codec 'utf-8' kann keine Zeichen codieren
Ich war süchtig nach der Bereitstellung von Google Cloud-Funktionen (der Codec 'ascii' kann das Zeichen u '\ u281b' an Position 58 nicht codieren).
Der Codec 'shift_jis' kann das Zeichen '\ uff0d' an Position 0 nicht codieren: Unzulässige Multibyte-Sequenz auflösen