我在这里疯了。互联网和这个问题告诉我,在python 3.x中,默认编码为UTF-8。除此之外,我系统的默认编码是UTF-8。除此之外,我# -*- coding: utf-8 -*-在python 3.5文件的顶部。
仍然,python正在使用ascii:
# -*- coding: utf-8 -*-
mystring = "Ⓐ"
print(mystring)
向我打招呼:
SyntaxError: 'ascii' codec can't decode byte 0xe2 in position 7: ordinal not in range(128)
我也尝试过:print(mystring.encode("utf-8"))和.decode("utf-8")-一样。
我在这里想念什么?如何强制python停止使用ascii编码?
编辑:我知道抱怨position 7一个字符串似乎很奇怪,但这是我的实际MCVE和我得到的确切输出。上面是使用python shell,下面是在脚本中。两者都使用python 3.5.2。
编辑:由于我认为这可能是相关的:我要获取的字符串来自外部应用程序,并且未进行硬编码,因此我需要一种获取utf-8字符串并将其保存到文件中的方法。上面只是一个最小化和通用的示例。这是我的真实代码:
# the variables being a string that might contain unicode characters
mystring = "username: " + fromuser + " | printname: " + fromname
with open("myfile.txt", "a") as myfile:
myfile.write(mystring + "\n")
慕沐林林
相关分类