我刚开始在一些python脚本上使用VSCode。当我尝试打印类似的东西时:
print('%s' % string.decode('utf-8'))
我在输出窗口中收到以下错误:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 16-20: ordinal not in range(128)
我知道这可能是因为输出流只是ascii,但我找不到改变它的地方......,要么我错过了,要么只是它的方式?
我在Win7 64bit上使用v0.10.8。
提前致谢!
答案 0 :(得分:0)
您的语法正确
arabic_bytes=b'\xd9\x83\xd9\x84\xd8\xa7 \xd8\xa8\xd8\xaf\xd8\xa7\xd9\x8a\xd8\xa9 \xd9\x88\xd8\xa8\xd8\xaf\xd8\xa7\xd9\x8a\xd8\xa9'
print('%s' % arabic_bytes.decode('utf-8'))
你应该看到كلابدايةوبداية
您的字节字符串可能已损坏,在这种情况下,您解码的更改为
arabic_bytes.decode('utf-8', errors='ignore')
答案 1 :(得分:0)
我也遇到了同样的问题,这是由插件-Code Runner引起的。
请在此处查看讨论内容:
建议将这些内容写入VSCode设置文件:
{
"code-runner.executorMap": {
"python": "set PYTHONIOENCODING=utf8 && python"
}
}
如果它不起作用,则可以使用它(在终端中运行脚本):
{
"code-runner.runInTerminal": true
}