我正在编写的程序使用函数 mscvrt.getch()捕获单个按键,其功能与同名的C函数非常相似,但不是返回char变量,而是返回一个字节,我必须在之后进行解码。
然而,它解码非ascii字符有问题,如重音字母(它触发UnicodeDecodeError),所以我用一个函数来处理这个异常,该函数将返回的字节值与我想要的特殊字符的字节值列表进行比较,如果它与其中一个匹配,则该函数返回其等效的char。
问题是我注意到我使用的两台机器上的字节值不同(可能与系统使用不同语言有关,和/或我使用不同布局的键盘)。
例如,如果我输入字符à,则在一台计算机中返回的字节值为 b'\ x85', b'\ xe0另一方是。
为什么会这样?如何制作一个“通用解决方案”(优雅,优选),可以在任何机器中按我的意愿工作?
答案 0 :(得分:1)
它将返回包含该字符的@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title:new Text ("Friendly Chat"),
centerTitle: true,
),
);
}
(而不是一个字节),并使用unicode而不是ascii。