2016-03-31 7 views
0

私はツイートのテキストを取得するシンプルなpythonスクリプトを持っています。Python 3のつぶやきからemojisをデコードする

しかし、emojisは何とかエンコードされているので、出力は\ xf0 \ x9f \ x90 \ xa3のようになります。

この出力から何が絵文字であるかを調べる方法はありますか?

+0

'import unicodedata; print(unicodedata.name(b "\ xf0 \ x9f \ x90 \ xa3" .decode( 'utf-8'))) 'は' HATCHING CHICK'と言う。あなたのスクリプトが何をしているのかを知らなくても、Istのことは分かりません。 – mata

+0

@mata彼はツイートのテキストを得ているように聞こえ、emojisは '\ xf0 \ x9f \ x90 \ xa3'として表示されます。彼は実際に何が絵文字であるかを知りたがっています... – Aaron

答えて

1

オッズはUTF-8でエンコードされています(残りのデータとともに、ASCIIテキストはASCIIとUTF-8で同じように表示されます)。

あなたはb'\xf0\x9f\x90\xa3'のようなbytesを持っている場合は、あなただけ行うだろう:あなたはstrとしてそれを受け取った場合

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

を、これはおそらくlatin-1と間違えデコードまたは他のコード・ページで、これだけ元に戻しますそれとUTF-8でやり直し:0x1f423の序数を取得します

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

(私のコンピュータはそれを表示することができない、または私はここでそれを追加していると思います)、ほとんどのために正しい範囲にあります絵文字。 As noted in the commentsunicodedataは、文字をHATCHING CHICKとして報告します。