UnicodeDecodeError: 'utf-8' codec kann nicht Dekodieren von byte-error
Ich versuche eine Antwort zu bekommen, aus urllib
- und entschlüsseln
zu einem lesbaren format. Der text ist in Hebräisch und enthält auch Zeichen wie {
und /
top-Seite-Codierung ist:
# -*- coding: utf-8 -*-
raw-string ist:
b'\xff\xfe{\x00 \x00\r\x00\n\x00"\x00i\x00d\x00"\x00 \x00:\x00 \x00"\x001\x004\x000\x004\x008\x003\x000\x000\x006\x004\x006\x009\x006\x00"\x00,\x00\r\x00\n\x00"\x00t\x00i\x00t\x00l\x00e\x00"\x00 \x00:\x00 \x00"\x00\xe4\x05\xd9\x05\xe7\x05\xd5\x05\xd3\x05 \x00\xd4\x05\xe2\x05\xd5\x05\xe8\x05\xe3\x05 \x00\xd4\x05\xea\x05\xe8\x05\xe2\x05\xd4\x05 \x00\xd1\x05\xde\x05\xe8\x05\xd7\x05\xd1\x05 \x00"\x00,\x00\r\x00\n\x00"\x00d\x00a\x00t\x00a\x00"\x00 \x00:\x00 \x00[\x00]\x00\r\x00\n\x00}\x00\r\x00\n\x00\r\x00\n\x00'
Nun bin ich versucht, Sie zu entschlüsseln mit:
data = data.decode()
und ich bekomme die folgende Fehlermeldung:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein problem ist, dass nicht UTF-8. Sie haben UTF-16 kodierte Daten dekodiert werden Sie als solche:
Wenn Sie geladen wird dieser von einer website mit
urllib.request
, dieContent-Type
header sollte enthaltencharset
parameter sagen Sie dies; wennresponse
ist der zurückgegebeneurllib.request
response-Objekt, dann nutzen Sie:Diese standardmäßig UTF-8, wenn keine
charset
parameter wurde gesetzt, das ist der geeignete Standard für die JSON-Daten.Alternativ verwenden Sie die
Anfragen
- Bibliothek zum laden der JSON-Antwort, es übernimmt die Dekodierung automatisch (einschließlich UTF-codec-Erkennung spezifische JSON-Antworten).Eine weitere Anmerkung: die PEP 263 source-code-codec Kommentar verwendet wird nur interpretieren Sie Ihre source-code, einschließlich zeichenfolgenliterale. Es hat nichts zu tun mit Kodierungen von externen Quellen (Dateien, Netzwerk-Daten, etc.).
Bekam ich diese Fehlermeldung in
Django
mitPython 3.4
. Ich habe versucht, diese arbeiten mit django-rest-framework.Das war mein code, der den Fehler behoben UnicodeDecodeError: 'utf-8' codec kann nicht decodieren byte Fehler.
Dies ist das bestehen der Prüfung: