哪个"平台依赖"在主要平台上,编码是否“open()”默认为?

时间:2015-10-15 17:23:59

标签: python unicode character-encoding localization

根据手册,open()的默认输入和输出编码是"平台相关",locale.getpreferredencoding()utf-8给出。但这些与平台相关的默认值到底是什么(或大致)?

编辑:有用的答案可能是配置列表的形式(可能是操作系统和某些语言/本地化设置的组合)以及由此产生的默认编码。

我不期待完整的参考,但我想知道会发生什么,以及在我的一个学生偶然发现我可以无故障地运行的代码时会考虑哪些因素(我的框默认为getpreferredencoding())。理想情况下,我可以事先说出来#34;如果您的系统设置为X,那么您应该做Y"。

我已查看findInterval的{​​{3}},我可以看到检查了一些环境变量,但我没有动物测试不同的机器手 - 我不知道在所有这些环境变量的设置中有哪些因素。我的学生来自不同国家(但主要是荷兰语),并使用PC,Mac和Chromebook。这里有人能够概述我的期望吗?

1 个答案:

答案 0 :(得分:0)

我认为在Windows上它将是当前的代码页,通常标记为ANSI。如果您指定名称'mbcs',那么这就是您在Windows上获得的编解码器。

然而,对于大多数实际目的而言,您应该假设文本文件只是一些随机编码。我不认为深入了解{{1的详细信息}}。如果我没有弄错,你可以在脚本中覆盖默认值。

我不知道您将如何处理这些文字,但如果您要在所有这些不同的编码中获取文件,请知道is否{{3找出那种编码的方法。

如果你想通过反复试验逐一检查这些文件,那么请继续,但我只是告诉学生提交一组编码来避免这个问题,例如。 UTF-8。使用locale.getpreferredencoding()打开文件非常简单。