繁体   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