Skip to main content
 首页 » 编程设计

Python:同一字符的不同字节值

2025年01月19日12davidwang456

我正在编写的程序使用函数 mscvrt.getch() 捕获单个按键,它的工作方式与同名的 C 函数非常相似,但它不是返回一个 char 变量,而是返回一个字节,之后我必须对其进行解码。

但是,它在解码非 ascii 字符时遇到问题,比如重音字母(它会触发 UnicodeDecodeError),所以我用一个函数来处理这个异常,该函数将返回的字节值与我想要的特殊字符的字节值列表进行比较, 如果它与其中之一匹配,则该函数返回其等效字符。

问题是我注意到我使用的两台机器上的字节值不同(可能与使用不同语言的系统和/或我使用不同布局的键盘有关)。

比如我输入字符à,返回的字节值在一台机器上是b'\x85',而b'\xe0 ' 在另一个。

为什么会这样?我怎样才能做出一个“通用解决方案”(优雅,最好),可以在任何机器上按我的意愿工作?

请您参考如下方法:

使用msvcrt.getwch() .

它将返回一个包含该字符的 str(而不是一个字节),并使用 unicode 而不是 ascii。