切换至Python 3导致UnicodeDecodeError

切换至Python 3导致UnicodeDecodeError,第1张

切换至Python 3导致UnicodeDecodeError

Python 3在读取时 解码 文本文件,在写入时 编码
。默认编码取自

locale.getpreferredencoding(False)
,显然可以返回设置
'ASCII'
。参见
open()
函数文档:

在文本模式下,如果 编码
未指定使用的编码是与平台相关的:

locale.getpreferredencoding(False)
被称为获取当前的本地编码。

不应依赖系统设置,而应使用显式编解码器打开文本文件:

currentFile = open(filename, 'rt', encoding='latin1')

在此处设置

encoding
参数以匹配要读取的文件。

Python 3支持UTF-8作为默认的 源代码

写入可写文本文件也是如此。写入的数据将被编码,并且如果您依靠系统编码,则

UnipreEncodingError
除非您明确设置了合适的编解码器,否则很可能会获得异常。编写时使用哪种编解码器取决于您编写的是什么文本以及以后打算如何处理文件。

您可能想阅读Unipre HOWTO中的Python
3和Unipre ,它解释了源代码的编码以及读写Unipre数据。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5643507.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存