在cmd下输出正常,在python.exe下输出乱码
在VScode的python插件下的Integrated Terminal/Console
运行模式也是这样的情况
我的代码
# -*- coding: utf-8 -*- ''' 假设有一个三角形,边长分别为a、b、c,三角形的面积S可由以下公式求得: S=√[p(p-a)(p-b)(p-c)] 而公式里的p为半周长: p=(a+b+c)/2 ''' import sys print(sys.getdefaultencoding()) import math sides=[float(n) for n in input('输入3条边:').split()] girth=sum(sides) p=girth/2 S=math.sqrt(p*(p-sides[0])*(p-sides[1])*(p-sides[2])) print('the area is %f,the girth is %.0f' % (S,girth))
把python.exe、VScode的 输出编码也改为 utf8
要不,把系统默认编码改回 gbk / cp936
可以了,设置GBK能正常显示,但是为什么会这样?
@Recoding
sys.setdefaultencoding 设置的默认编码只对 cmd 有效,
你改成utf-8,而 python.exe 和 vscode 的输出窗口的编码仍然是默认gbk,
所以就显示乱码了
然而,你并不知道如何改 python.exe 和 vscode 的输出窗口的编码。