Python 3中如何用字符串字面量输出UTF-8字符Qä?
解决Python 3中直接用字符串字面量输出UTF-8字符"Qä"的问题
核心原因
你遇到的问题大概率是脚本文件实际保存编码与声明的UTF-8不匹配,或者终端输出编码未设置为UTF-8,导致字符串字面量中的非ASCII字符被错误解码/编码。
解决方法
确保脚本文件以UTF-8无BOM编码保存
很多编辑器(比如Windows记事本)默认用GBK或UTF-8带BOM编码保存,即使你加了# -*- coding: utf-8 -*-声明,文件实际编码不对的话,字面量里的"ä"会变成乱码字节。检查编辑器的保存设置,选择「UTF-8(无BOM)」保存脚本。确认终端编码为UTF-8
- Linux/macOS:执行
echo $LANG,输出应包含.UTF-8(如zh_CN.UTF-8),若不是则修改终端语言环境为UTF-8编码。 - Windows CMD:执行
chcp 65001切换到UTF-8编码;PowerShell默认一般支持UTF-8,若有问题可在设置中开启「使用UTF-8编码」。
- Linux/macOS:执行
使用Unicode转义序列兜底
如果不想依赖文件保存编码,直接用Unicode转义字符代替字面量的"ä",这样无论文件用什么ASCII兼容编码保存,都能正确输出:# -*- coding: utf-8 -*- print("Q\u00e4")直接使用字面量(文件编码正确时)
当脚本文件确实以UTF-8无BOM保存,且终端编码为UTF-8时,直接写字面量即可正常输出:# -*- coding: utf-8 -*- print("Qä")
为什么读文件能成功?
读取UTF-8文件时,Python会自动将文件的字节流解码为Unicode字符串,输出时再根据终端编码转码,这个过程绕开了脚本文件本身的编码问题,所以能正常显示"Qä"。
内容的提问来源于stack exchange,提问作者faiuwle
相关产品推荐
相关产品推荐

