簡體   English   中英

Python從用戶讀取單個Unicode字符

[英]Python read a single unicode character from the user

我正在尋找一種從標准輸入中獲取單個unicode字符的方法。 最近,我看到了這個主題 ,其中的解決方案不適用於Unicode字符,而僅適用於ASCII字符。

使用上述主題中引用的getch()函數,當用戶鍵入一個Unicode字符時,它表示為多個ASCII字符。 實際上, getch()僅返回第一部分(字節)。 剩余的字節只能再次使用getch()訪問(但是我不知道如何知道還有多少字節)。

有沒有一種方法實際上可以從輸入中獲取單個unicode字符?

謝謝!

如果您使用的是UTF-8,則多字節字符的第一個字節會告訴您有多少個字節。 所以這樣的事情可以工作:

c = getch()
first_byte = ord(c)
bytes_remain = 0
while (first_byte >> (6 - bytes_remain)) & 0b11 == 0b11:
    bytes_remain += 1
    c += getch()

暫無
暫無

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

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