PyCharm内置控制台无法渲染Emoji,日志输出报错求助
解决Windows PyCharm日志输出Emoji编码错误问题
问题重现
执行logger.info('🧱 Querying databricks')时触发UnicodeEncodeError,错误提示'charmap' codec can't encode character '\U0001f9f1'。即使已将PyCharm终端设置为PowerShell(系统终端可正常显示Emoji)、更换Segoe UI Emoji字体,问题仍存在。
解决方案
1. 给logging配置指定UTF-8编码
修改logging初始化代码,显式设置输出流的编码为UTF-8:
import logging logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s', encoding='utf-8' # 强制使用UTF-8编码输出 ) logger = logging.getLogger(__name__) logger.info('🧱 Querying databricks')
2. 强制PyCharm控制台使用UTF-8编码
- 打开PyCharm设置(快捷键
Ctrl+Alt+S) - 导航到
Editor > General > Console - 在「Console Encoding」选项中选择
UTF-8,点击「Apply」保存设置
3. 配置PyCharm的PowerShell启动参数
- 打开设置
Tools > Terminal - 确认「Shell path」为PowerShell路径(示例:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe) - 在「Shell path」末尾添加启动参数:
-NoExit -Command chcp 65001,强制终端启动时切换到UTF-8编码(代码页65001对应UTF-8)
原因说明
PyCharm内置控制台默认可能继承了系统的CP1252编码,而非PowerShell使用的UTF-8编码。即使外部系统终端能正常显示Emoji,内置控制台的编码设置未同步,导致logging模块输出时用错误编码处理Unicode字符,引发编码错误。
内容的提问来源于stack exchange,提问作者Tjorriemorrie
相关产品推荐
相关产品推荐

