簡體   English   中英

Twitter中的Unicode字符(Python)

[英]Unicode Characters in Twitter (Python)

我已經學習了如何使用Python發送推文,但是我想知道是否可以在推文中發送表情符號或其他特殊的Unicode字符。

例如,當我嘗試鳴叫u'1F430'時,它只是在鳴叫中顯示為“ 1F430”。

u'1F430'是文字字符串“ 1F430”。 您想獲得什么角色? 通常,您可以使用“ \\ x20”將文字字節轉換為python字符串,例如

>>> print(b"#\x20#")
# #

在兩個哈希之間具有十六進制值20(十進制32)的字節。 默認情況下,字節被解碼為ASCII,ASCII字符(十六進制)20是一個空格。

>>> print(u"#\u0020#")
# #
>>> print(u"#\U0001F430#")
# #

2個哈希值中間的Unicode代碼點20(單個空格)

有關更多信息,請參見https://docs.python.org/3.3/howto/unicode.html 注意:由於python在很多情況下會在字節和unicode之間進行隱式轉換(使用ASCII編碼),因此可能會造成一些混亂,這可能會使您隱瞞一段時間。

>>> len(u'1f430')
5
>>> len(u'\U0001F430') 
1 # the latter might be equal to two in Python 2 on a narrow build (Windows, OS X)

前者是5個字符,后者是單個字符。

如果要在Python源代碼中指定字符,則可以使用其名稱以提高可讀性:

>>> print(u"\N{RABBIT FACE}")
🐰

注意:它可能無法在Windows控制台中使用。 要在那里顯示非BMP Unicode字符,可以使用win-unicode-console + ConEmu

如果要從文件,網絡等中讀取字符,則此字符與其他字符沒有什么不同:要將字節解碼為Unicode文本,應指定字符編碼,例如:

import io

with io.open('filename', encoding='utf-8') as file:
    text = file.read()

使用哪種特定的編碼取決於源,例如,請參見在Python中獲取HTTP響應的字符集/編碼的好方法。

暫無
暫無

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

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