code:
import sys
print(sys.getdefaultencoding())
f = open("/Users/wqh/Desktop/foo.txt", "w")
f.write( "有错误" )
f.close()
utf-8
Traceback (most recent call last):
File "/Users/wqh/Desktop/t.py", line 5, in <module>
f.write( u"Python \u662f\u4e00\u4e2a\u975e\u5e38\u597d\u7684\u8bed\u8a00\u3002\n\u662f\u7684\uff0c\u7684\u786e\u975e\u5e38\u597d!!\n" )
UnicodeEncodeError: 'ascii' codec can't encode characters in position 7-16: ordinal not in range(128)
首先发现默认的编码是utf-8 但是还是出错 Google无果 应该是代码编辑器Atom的问题。
解决:
f = open("/Users/wqh/Desktop/foo.txt", "w",encoding='utf8')
或者
import codecs
f = codecs.open('/Users/wqh/Desktop/foo.txt','w+','utf-8')
f.write( "codecs 修改成功 \n" )
在Atom下解决:
import sys,io
sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')
print('解决')
或者
使用atom-python-run 替代 atom-run