【发布时间】:2014-09-13 21:06:32
【问题描述】:
我可以跨平台更改默认的open() (io.open() in 2.7) 文本编码吗?
这样我就不需要每次都指定open(...,encoding='utf-8')。
在文本模式下,如果未指定 encoding,则使用的编码取决于平台:调用
locale.getpreferredencoding(False)以获取当前的语言环境编码。
虽然文档没有指定如何设置首选编码。该函数在locale 模块中,所以我需要更改语言环境?是否有任何可靠的跨平台方式来设置 UTF-8 语言环境?它会影响除默认文本文件编码以外的任何其他内容吗?
或者语言环境更改很危险(可能会破坏某些东西),我应该坚持使用自定义包装器,例如:
def uopen(*args, **kwargs):
return open(*args, encoding='UTF-8', **kwargs)
【问题讨论】:
标签: python utf-8 character-encoding locale default