编码默认值

节选自《流畅的python》4.5节处理文本文件

  • 如果打开文件时没有指定encoding参数,默认值由locale.getpreferredencoding()提供。
  • 如果系统设定了PYTHONIOENCODING环境变量,sys.stdout/stdin/stderr的编码使用设定的值。否则继承自所在的控制台。
  • 如果输入/输出重定向到文件,则编码默认值由locale.getpreferredencoding()定义。
  • Python在二进制数据和字符串数据之间转换时,默认使用sys.getdefaultencoding()获得的编码。
  • sys.getfilesystemencoding()用于编解码文件名称(不是文件内容)。把字符串参数作为文件名传递给open()函数时就会使用它。

Windows用户更容易遇到编码问题,关于编码默认值的最佳建议是:别依赖默认值。

你可能感兴趣的:(python)