Python中VSC写代码出现编码问题如何解决
用 coderunner 插件运行 Python 文件
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128) 报错提示这个
问题是我已经在文件最上面加了
-- coding: utf-8 --
而且 vsc 的设置里 files.encoding": "utf8", 也设置好了
这是为什么呢?
Python中VSC写代码出现编码问题如何解决
你好,我是插件作者。你 py 文件内容是啥,里面有中文?可以试试这里面的三种解决方案: https://github.com/formulahendry/vscode-code-runner/issues/25
在VSCode里遇到编码问题,通常是因为文件编码、终端编码或代码中字符串处理不一致导致的。直接上解决方案:
1. 设置文件编码 在VSCode右下角状态栏点击编码(如UTF-8),选择“通过编码保存”,然后选“UTF-8 with BOM”或“UTF-8”。或者在settings.json里加:
{
"files.encoding": "utf8",
"files.autoGuessEncoding": true
}
2. Python文件头加编码声明 在.py文件开头加:
# -*- coding: utf-8 -*-
3. 处理读写文件编码 读写文件时明确指定编码:
with open('file.txt', 'r', encoding='utf-8') as f:
content = f.read()
with open('output.txt', 'w', encoding='utf-8') as f:
f.write(content)
4. 配置终端编码 在VSCode的settings.json里设置终端编码:
{
"terminal.integrated.defaultProfile.windows": "Command Prompt",
"terminal.integrated.env.windows": {
"PYTHONIOENCODING": "utf-8"
}
}
5. 处理中文字符串 代码里用u前缀定义Unicode字符串:
text = u"中文内容"
print(text.encode('utf-8').decode('utf-8'))
6. 检查Python环境 在代码里打印当前编码确认:
import sys
print(sys.getdefaultencoding())
print(sys.stdout.encoding)
一般按这个顺序排查:先确保文件保存为UTF-8,然后检查读写文件时是否指定编码,最后确认终端环境。多数情况下问题出在文件编码没统一。
总结建议:统一用UTF-8编码并显式声明。
好啦好啦!!谢谢谢谢!!!!顺便一提 你的插件好棒的!
😀
Import Io
Io.set …………
原谅我不会手机打代码
全球第一工单论坛 😂
···
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding=‘utf8’)
···

