2014-09-07 12 views
12

Próbuję wypisać jako "\ U0001f604" zamiast buźkę, ale nie wydaje się działać.Drukowanie python emoji jako Unicode ciąg

Próbowałem użyć repr(), ale daje mi to "\ xf0 \ x9f \ x98 \ x84". Obecnie wyświetla się jako smiley, co nie jest tym, czego chciałem. encode ('unicode_escape') daje mi UnicodeDecodeError.

Buźka została przekazana jako ciąg do metody klasy w python. "Jestem szczęśliwy "

Doceń, jeśli ktoś może pomóc.

Przepraszamy za dużą buźkę. Obniżka nie działa tutaj.

Odpowiedz

9

Znalazłem rozwiązanie problemu.

Napisałem następujący kod:

#convert to unicode 
teststring = unicode(teststring, 'utf-8') 

#encode it with string escape 
teststring = teststring.encode('unicode_escape') 
+5

można proszę podać nazwę pakietu dla tych funkcji w Pythonie. –

12
>>> print u'\U0001f604'.encode('unicode-escape') 
\U0001f604 
1

Jeśli jest to dla celów debugowania, można użyć% R jako specyfikacją formatu.

>>> print '%r' % u'\U0001f604' 
u'\U0001f604' 
1

Wystarczy dodać

# -*- coding: UTF-8 -*- 

w kodzie i będzie można drukować znaki Unicode