Bu, Converting to Emoji numaralı izindir. Bu soruda, OP bir \ud83d\ude4f
- bir temsilci çifti olarak temsil edilen bir emoji ile json.dumps()
kodlu bir dosya vardı. Dosyayı okurken ve emojiyi doğru bir şekilde tercüme ederken problem yaşıyordu ve doğru answer, dosyadan her satır json.loads()
oldu ve json
modülü, yeniden çiftleştiriciden (UTF8 kodlu olduğunu varsayarak) dönüşümü ele alacaktı. emojisi. Yani buradaPython'da vekil çiftlerle nasıl çalışılır?
benim durumdur: bunun dışında emoji bir temsilini elde etmek
emoji = "This is \ud83d\ude4f, an emoji."
Nasıl bu dize işlemek yapın: İçinde bir vekil çifti ile sıradan bir Python 3 Unicode dizesi olduğunu varsayalım ? Böyle bir şey almak için arıyorum: denedim
"This is , an emoji."
# or
"This is \U0001f64f, an emoji."
:
print(emoji)
print(emoji.encode("utf-8")) # also tried "ascii", "utf-16", and "utf-16-le"
json.loads(emoji) # and `.encode()` with various codecs
Genellikle ben
UnicodeEncodeError: XXX codec can't encode character '\ud83d' in position 8: surrogates no allowed
benzer bir hata alıyorum.
$LANG
en_US.UTF-8
'a ayarlı Linux üzerinde Python 3.5.1 çalıştırıyorum. Bu örnekleri hem Python yorumlayıcısında komut satırında, hem de Subtime Metninde çalışan IPython içinde çalıştırıyorum - herhangi bir farklılık görünmüyor. ve bellekte (Python kaynak kodunda değişmez bir dize kullanarak belirtilen) bir tek karakteri u'\ud83d'
:
Harika, teşekkürler! Ben "surrogatepass" hata işleyicisi eksikti. – MattDMo