我的代码在UTF8编码的文本文件上使用open("file.txt")
。
但是,这会在Windows上中断,因为它默认使用cp1252
。
如何在不更改代码的情况下使代码正常工作?
我已经看过并尝试了PYTHONIOENCODING
,sys.setdefaultencoding
和chcp 65001
个解决方案,但没有一个能有所作为。
答案 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__