我在这里疯了。互联网和这个问题告诉我,在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 charactersmystring = "username: " + fromuser + " | printname: " + fromnamewith open("myfile.txt", "a") as myfile: myfile.write(mystring + "\n")
2 回答
慕沐林林
TA贡献2016条经验 获得超9个赞
Python 3.0的新功能说:
所有文本均为Unicode;但是,编码的Unicode表示为二进制数据
如果您想尝试输出utf-8,请参考以下示例:
b'\x41'.decode("utf-8", "strict")
如果要在字符串文字中使用unicode,请使用unicode转义符及其编码表示形式。例如:
print("\u24B6")
添加回答
举报
0/150
提交
取消