写出文本文件时出现Python奇怪字符
作者:互联网
我这里有一个简单的代码,应该在文本文件中输出2列字符.
infile = open('anything.txt', 'r')
outfile = open('some.txt', 'w')
f = infile.readlines()
data=[]
a=['1','2','3']
b=['5','6','7']
for i in a:
for j in b:
outfile.write(i + "\t" + j + "\n")
当我使用标准记事本打开生成的文本文件时,得到的是这些奇怪的字符!
ऱਵऱਸ਼ऱलਵलਸ਼लळਵळਸ਼ळ
但是,当我用记事本或写字板打开文本文件时,结果是两列数字,它们之间有一个制表符,这正是我们所期望的.
我真的在这里迷路了.到底是怎么回事 ?我不能使用标准记事本打开文本文件吗?
谢谢你的帮助.
解决方法:
我相信这是记事本的错误.
记事本为ASCII时,会将文件中的数据解释为Unicode.
前两个字符为1,制表符的ascii十六进制值为31和09
如果记事本将文件误解为Unicode,它将读取两个值,即3109,并显示一个字符以进行匹配:ऱ http://www.unicodemap.org/details/0x0931/index.html(您可以看到它与“奇怪字符”字符串中的第一个字符匹配.)
这是记事本中的一个众所周知的错误,甚至在维基百科上也有其幽默的标题页面:http://en.wikipedia.org/wiki/Bush_hid_the_facts
您可以在记事本中选择字符编码,以通过在编码下拉列表(在本例中为ANSI)中选择文件来强制文件以正确的编码打开.但是,如果您想查看文本文件中数据的正确值,则最好使用另一个文本编辑器.
标签:python-2-4,text,notepad-2,python 来源: https://codeday.me/bug/20191101/1981938.html