为了账号安全,请及时绑定邮箱和手机立即绑定

在python3中正确使用unicode字符-强制utf-8编码

在python3中正确使用unicode字符-强制utf-8编码

UYOU 2021-05-20 06:09:45
我在这里疯了。互联网和这个问题告诉我,在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")


查看完整回答
反对 回复 2021-05-25
  • 2 回答
  • 0 关注
  • 263 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信