2017-03-13 82 views
2

無論出於何種原因,我認爲這將是一個整潔的表達我感興趣的表情符號。第一列將是codepoint,第二表情符號,第三名。沿着這個網頁的東西,但是適合我的使用。在Python 3中如何打印unicode codepoint作爲u' U ...'

Full emoji data

假設我弄清楚如何在代碼點迭代(有對於其他問題,或者我構建的興趣列表),那麼我將只通過代碼點,如

u_str = u'\U0001F001' 
u_str = u'\U0001F002' 
週期

(產生編程當然)

和打印(在循環中):

print(u'\U0001F001', u_str, ' ', unicodedata.name(u_str)) 
print(u'\U0001F002', u_str, ' ', unicodedata.name(u_str)) 

如果有能力使用unicodedata和一些屬性,如unicodedata.hex_representation,那麼我只會使用它,但如果在unicodedata中存在該屬性,我不理解規範以查看它。

因此,在尋找答案,我發現這樣一個問題:

how-does-one-print-a-unicode-character-code-in-python

我嘗試:

>>> print(u_str.encode('raw_unicode_escape')) 
b'\\U0001f600' 

什麼我要找的是我放在:

u_str = u'\U0001F600' 

這是可能的還是有一些其他方式來實現建設的表?

回答

2

是這樣的嗎?

>>> for i in range(0x1f001,0x1f005): 
>>>  print('U+{0:04X} \\U{0:08X} {1}'.format(i,chr(i))) 
U+1F001 \U0001F001 
U+1F002 \U0001F002 
U+1F003 \U0001F003 
U+1F004 \U0001F004 
+0

完美!我也贊成,但直到我的聲望高於15時纔會錄製。 – mcwizard

1
  1. 最初的表示形式永遠消失了。大小寫和格式由Python本身指定。

  2. 您需要將您的字節解碼迴文本。嘗試ascii編解碼器,因爲這將全部產生raw_unicode_escape

+0

打印(u_str.encode( 'ASCII'))// UnicodeEncodeError: 'ASCII' 編解碼器不能編碼字符 '\ U0001f002' 在位置0:順序不在範圍內(128)是:笑嘻嘻FACE 。 – mcwizard

+0

我的答案沒有任何地方表明您需要對原始文本進行編碼。 –

+0

您編碼了文本。這給你字節。現在您需要將字節解碼迴文本。 –

相關問題