如何在Windows上使用`open()`默认使用UTF8?

时间:2018-06-07 10:00:35

标签: python

我的代码在UTF8编码的文本文件上使用open("file.txt")。 但是,这会在Windows上中断,因为它默认使用cp1252

如何在不更改代码的情况下使代码正常工作?

我已经看过并尝试了PYTHONIOENCODINGsys.setdefaultencodingchcp 65001个解决方案,但没有一个能有所作为。

2 个答案:

答案 0 :(得分:0)

在open()函数中使用encoding key value参数: -

file_descriptor = open("file.txt", encoding="utf8")

答案 1 :(得分:0)

您可以覆盖private void edittextFocus(EditText editText){ handler = new Handler(); final Runnable r = new Runnable() { public void run() { scrollView.smoothScrollTo(0, passwordet.getBottom()+100); } }; handler.postDelayed(r, 200); } 内置并将其替换为您自己的,默认情况下使用utf-8:

使用以下函数创建文件open()

custom_open.py

现在,您可以将import builtins def open(*args, **kwargs): kwargs["encoding"] = "utf8" return builtins.open(*args, **kwargs) 添加到现有文件中,并覆盖from custom_open import open函数,从而有效地打开UTF-8中的所有文件。确实,它涉及更改现有代码,但您只需要向现有文件添加一个导入即可使其正常工作。

如果您使用的是Python 2,open()模块应替换为builtins

__builtin__