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

时间:2017-10-08 17:36:31

标签: python text unicode ascii decode

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

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

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

例如,如果我输入字符à,则在一台计算机中返回的字节值为 b'\ x85' b'\ xe0另一方是

为什么会这样?如何制作一个“通用解决方案”(优雅,优选),可以在任何机器中按我的意愿工作?

1 个答案:

答案 0 :(得分:1)

使用msvcrt.getwch()

它将返回包含该字符的@override Widget build(BuildContext context) { return new Scaffold( appBar: new AppBar( title:new Text ("Friendly Chat"), centerTitle: true, ), ); } (而不是一个字节),并使用unicode而不是ascii。