2016-03-31 3 views
0

Ich habe ein einfaches Python-Skript, das den Text eines Tweet erhält.Entschlüsselung von Emojis aus Tweets in Python 3

Emojis sind jedoch irgendwie codiert, so dass sie in der Ausgabe \ xf0 \ x9f \ x90 \ xa3 aussehen.

Gibt es eine Möglichkeit herauszufinden, was Emoji von diesem Ausgang ist?

+0

'importieren unicodedata; print (unicodedata.name (b "\ xf0 \ x9f \ x90 \ xa3" .decode ('utf-8')))) 'sagt' HUTCHING CHICK'. Es ist schwer mehr zu sagen, ohne zu wissen, was genau dein Skript macht ... – mata

+0

@mata Es hört sich so an, als würde er den Text eines Tweet bekommen und die Emojis werden als '\ xf0 \ x9f \ x90 \ xa3' angezeigt, also klingt es wie Er möchte wissen, was Emoji eigentlich ist ... – Aaron

Antwort

1

Quoten sind es UTF-8 kodiert (zusammen mit dem Rest der Daten, es ist nur, dass ASCII-Text wird identisch in ASCII und UTF-8 gerendert).

Wenn Sie ein bytes wie b'\xf0\x9f\x90\xa3', würden Sie gerade tun:

b = b'\xf0\x9f\x90\xa3' 
txt = b.decode('utf-8') 

Wenn Sie es als str erhalten, ist dies wahrscheinlich eine falsche Decodierung als latin-1 oder eine andere Codepage, so einfach rückgängig machen es und Redo mit UTF-8:

b = '\xf0\x9f\x90\xa3' 
txt = b.encode('latin-1').decode('utf-8') 
# If it's not latin-1, could be sys.getdefaultencoding() 

, die eine Ordnungs von 0x1f423 bekommt (mein Computer kann nicht angezeigt werden, oder ich habe es hier aufgenommen), die für die meisten die im richtigen Bereich ist Emoji. As noted in the comments, unicodedata meldet das Zeichen als HATCHING CHICK.

Verwandte Themen