Python 3.x 为什么在读取的文件中有前面的\ufeff?
我尝试将文本保存到文档中,并尝试从文档中读取文本。结果是我在输出中有一个前面的Python 3.x 为什么在读取的文件中有前面的\ufeff?,python-3.x,Python 3.x,我尝试将文本保存到文档中,并尝试从文档中读取文本。结果是我在输出中有一个前面的\ufeff。我主要对为什么会发生这种情况感到困惑。(这是回复,如果不够清楚的话。) win32上的Python 3.8.1(tags/v3.8.1:1b293b6,2019年12月18日,23:11:46)[MSC v.1916 64位(AMD64)] 有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。 >>>打开(“text.txt”) >>>打开(“text.txt”).read() “\ufeff
\ufeff
。我主要对为什么会发生这种情况感到困惑。(这是回复,如果不够清楚的话。)
win32上的Python 3.8.1(tags/v3.8.1:1b293b6,2019年12月18日,23:11:46)[MSC v.1916 64位(AMD64)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>打开(“text.txt”)
>>>打开(“text.txt”).read()
“\ufeff1234”
>>>
您应该将默认编码从
cp65001
更改为utf-8-sig
替换此项:
open(“text.txt”)
为此:
open(“text.txt”,mode='r',encoding='utf-8-sig')
这是一个
Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> open("text.txt")
<_io.TextIOWrapper name='text.txt' mode='r' encoding='cp65001'>
>>> open("text.txt").read()
'\ufeff1234'
>>>