[英]How to print unicode character from a string variable?
我是編程界的新手,我有點困惑。
我希望這兩個打印結果相同的圖形 unicode 感嘆號符號:
我的實驗:
number = 10071
byteStr = number.to_bytes(4, byteorder='big')
hexStr = hex(number)
uniChar = byteStr.decode('utf-32be')
uniStr = '\\u' + hexStr[2:6]
print(f'{number} - {hexStr[2:6]} - {byteStr} - {uniChar}')
print(f'{uniStr}') # Not working
print(f'\u2757') # Working
Output:
10071 - 2757 - b"\x00\x00'W" - ❗
\u2757
❗
最后兩行有什么區別? 請幫助我理解它!
我的環境是JupyterHub和v3.9 python。
Python 解析器在構造文字字符串時評估的轉義碼。 例如,文字字符串'馬'
和'馬'
被解析器評估為相同的、長度為 1 的字符串。
您可以(並且確實)通過使用反斜杠 ( \\
) 的轉義碼來構建一個包含 6 個字符馬
的字符串,以防止解析器將這 6 個字符評估為轉義碼,這就是它打印為 6 個字符的原因❗
.
如果您使用這 6 個字符構建字節字符串,則可以使用.decode('unicode-escape')
對其進行解碼以獲取字符:
>>> b'\\u2757'.decode('unicode_escape')
'❗'
但是對數字本身使用chr()
function 更容易:
>>> chr(0x2757)
'❗'
>>> chr(10071)
'❗'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.