簡體   English   中英

在 Python 3 中如何將 unicode 代碼點打印為 u'\\U...'

[英]In Python 3 how to print unicode codepoint as u'\U…'

無論出於何種原因,我認為創建一個我感興趣的表情符號表會很好。第一列是代碼點,第二列是表情符號,第三列是名稱。 與此網頁類似的內容,但適合我的使用。

完整的表情數據

假設我弄清楚如何迭代代碼點(還有其他問題或者我構建了一個感興趣的列表)然后我將循環遍歷代碼點,例如

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 中有該屬性,我不明白看到它的規范。

所以在尋找答案時,我發現了這個問題:

怎么做-一個打印-一個-unicode-character-code-in-python

我嘗試:

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

我正在尋找的是我放入的內容:

u_str = u'\U0001F600'

這是可能的還是有其他方法可以實現表格的構建?

使用 Python 3.6+:

>>> for i in range(0x1f001,0x1f005):
>>>     print(f'U+{i:04X} \\U{i:08X} {chr(i)}')
U+1F001 \U0001F001 🀁
U+1F002 \U0001F002 🀂
U+1F003 \U0001F003 🀃
U+1F004 \U0001F004 🀄
  1. 原始表示永遠消失了。 大小寫和格式由 Python 本身指定。

  2. 您需要將字節解碼回文本。 嘗試ascii編解碼器,因為這就是raw_unicode_escape會生成的全部raw_unicode_escape

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM