PowerShell无法正常打印å、ä、ö等字符的技术求助
解决Windows 11 PowerShell执行Python时UTF-8瑞典语字符乱码问题
这种乱码本质是Python控制台输出编码和PowerShell的UTF-8环境不匹配导致的——即便手动设置了chcp 65001,Python可能仍默认使用旧编码输出,以下是几个直接有效的解决方法:
方法一:强制Python输出UTF-8
在你的Python代码开头加入这段代码,强制标准输出使用UTF-8编码:
import sys sys.stdout.reconfigure(encoding='utf-8')
添加后再执行代码,瑞典语的å、ö、ä字符就能正常打印了。
方法二:确认VS Code文件编码为UTF-8(无BOM)
有时候VS Code可能默认保存为带BOM的UTF-8,也会导致问题:
- 点击VS Code右下角的编码标识(比如显示"UTF-8")
- 选择「通过编码保存」,然后选「UTF-8」(不要选「UTF-8 with BOM」选项)
方法三:设置PowerShell默认UTF-8编码
不想每次手动输入chcp 65001的话,可以修改PowerShell的默认编码:
打开PowerShell执行以下命令:
Set-ItemProperty -Path HKLM:\Console\PowerShell.exe -Name CodePage -Value 65001
重启PowerShell后,默认编码就会是UTF-8,不用每次手动切换。
方法四:验证输出编码
可以在代码里加一行查看当前输出编码,确认设置是否生效:
import sys print(sys.stdout.encoding)
如果输出是utf-8,说明编码配置正确。
内容的提问来源于stack exchange,提问作者user21897918
相关产品推荐
相关产品推荐

