节选自《流畅的python》4.5节处理文本文件
- 如果打开文件时没有指定encoding参数,默认值由locale.getpreferredencoding()提供。
- 如果系统设定了PYTHONIOENCODING环境变量,sys.stdout/stdin/stderr的编码使用设定的值。否则继承自所在的控制台。
- 如果输入/输出重定向到文件,则编码默认值由locale.getpreferredencoding()定义。
- Python在二进制数据和字符串数据之间转换时,默认使用sys.getdefaultencoding()获得的编码。
- sys.getfilesystemencoding()用于编解码文件名称(不是文件内容)。把字符串参数作为文件名传递给open()函数时就会使用它。
Windows用户更容易遇到编码问题,关于编码默认值的最佳建议是:别依赖默认值。
本文深入探讨了Python中处理文本文件时的各种编码设置方式,包括如何指定文件编码、系统默认编码的来源以及不同场景下编码的选择策略。对于Windows用户来说,文章特别强调了避免依赖默认编码的重要性。
1412

被折叠的 条评论
为什么被折叠?



