Python从用户读取单个unicode字符

时间:2014-05-09 05:33:30

标签: python unicode stdin

我正在寻找一种从标准输入中获取单个 unicode 字符的方法。最近,我看到this topic解决方案不适用于unicode字符,只适用于ASCII字符。

使用上述主题中引用的函数getch(),当用户键入unicode字符时,它表示为多个ASCII字符。实际上,getch()仅返回第一部分(字节)。剩余的字节只能再次使用getch()访问(但我不知道如何知道剩余的字节数。)

有没有办法从输入中实际获得单个unicode字符?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您使用的是UTF-8,则多字节字符的第一个字节会告诉您有多少字节。所以这样的事情可以起作用:

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