Python打印Unicode字符触发UnicodeEncodeError编码错误如何解决
错误原因与解决方案
错误原因
Windows终端默认使用cp1250编码,该字符集不包含你打印艺术字用到的扩展Unicode盒型字符,Python输出内容时无法完成编码转换,因此抛出UnicodeEncodeError错误。
解决方案
- 方案1:运行脚本前指定Python使用UTF-8编码输出
Windows cmd终端执行命令:
PowerShell终端执行命令:set PYTHONUTF8=1 python test.py$env:PYTHONUTF8=1 python test.py - 方案2:修改代码强制以UTF-8编码输出,修改后代码如下:
import sys art_text = """
██╗ ██╗██████╗ ██████╗ ██████╗
╚██╗██╔╝██╔══██╗██╔══██╗██╔════╝
╚███╔╝ ██████╔╝██████╔╝██║
██╔██╗ ██╔══██╗██╔═══╝ ██║
██╔╝ ██╗██║ ██║██║ ╚██████╗
╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═════╝
"""
sys.stdout.buffer.write(art_text.encode('utf-8'))
- 方案3:修改终端编码为UTF-8 临时生效可在运行脚本前执行`chcp 65001`切换当前终端编码为UTF-8,再运行Python脚本即可。永久生效可进入Windows「控制面板-时钟和区域-区域-管理-更改系统区域设置」,勾选「Beta版:使用Unicode UTF-8提供全球语言支持」,重启设备后生效。 --- 内容的提问来源于stack exchange,提问作者WooxHimself
相关产品推荐
相关产品推荐

