例如:
1.使用NotePad++,以默认的“以 UTF-8无 BOM 格式编码”编写:
print "一加一等于二"
直接运行后CMD报错:
但是在IDLE中显示正常:
在文件第一行加入注释:
# _*_coding:utf-8_*_
运行后CMD显示乱码,IDLE依然正常:
在字符串前加u(Unicode编码):
# _*_coding:utf-8_*_ print u"一加一等于二"
运行后正常,IDLE依然正常:
2. 使用NotePad++,以“以 ANSI 格式编码”编写:
# _*_coding:utf-8_*_ print u"一加一等于二"
运行后报错:
去掉字符串前的u(Unicode编码):
# _*_coding:utf-8_*_ print "一加一等于二"
运行后正常:
原因:
Windows的命令提示符CMD和WindowsPowerShell默认编码是ANSI,导致对UTF-8编码不能正常显示
网上有种方法使用chcp 65001命令将CMD的默认编码页设置为UTF-8
经测试运行Python任然有问题。
直接运行Python程序乱码
取消# _*_coding:utf-8_*_后报错:
在字符串前加u(Unicode编码),依然报错:
还原CMD默认设置,注册版中删除HKEY_CURRENT_USER\Console 项即可。
时间: 2024-12-25 18:44:25