写了个测试脚本
# -*- coding=utf8 -*-
import sys
print (sys.getdefaultencoding())
print("中文")
print(open('u8.txt','r',encoding='utf-8').read())
print(open('u8.txt','rb').read().decode('utf8'))
print(open('gbk.txt','r',encoding='gbk').read())
print(open('gbk.txt','rb').read().decode('gbk'))
python33\python.exe
test.py 控制台下 显示正常
sublime中运行提示[Decode error - output not utf-8]
notepad++编辑器运行显示正常
如果notepad++编辑器输出选utf8,显示方块
输出结果刚好与设置相反
python33\python.exe
test.py > out.txt
用编辑器打开out.txt 显示是gb2312
如果python内部是utf8的话,应该在控制台输出是乱码,在编辑器设置输出为utf8的时候正常显示,重定向保存文件应该是utf8 ,实际测试结果与期望刚好相反
难道是print在输出的时候做了转换了吗?