执行代码:
49 print(sys.getdefaultencoding())
50 print('歌单:'+data.get('cdlist')[0].get('dissname')+' 开始写入')
51
52 with open(data.get('cdlist')[0].get('dissname').replace('/','') + '_json.txt', 'w') as f:
53 json.dump(data, f, indent=4)
54 f.close()
55
56 with open(data.get('cdlist')[0].get('dissname').replace('/','')+'.txt', 'w') as f:
57 for song in song_list:
58 f.write(song['songname']+'\n')
59 f.close()
PyCharm 会提示("songname"是日文)
utf-8
歌单:百首日语神曲 涤荡心灵的歌声 开始写入
Traceback (most recent call last):
File "/Users/zscself/Dropbox/Source/PycharmProjects/QQ_music/main.py", line 58, in <module>
f.write(song['songname']+'\n')
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-6: ordinal not in range(128)
如果在 PyCharm 中的 Terminal 中运行 python ./main.py
会多出另外一个错误
Error in usercustomize; set PYTHONVERBOSE for traceback:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)
utf-8
Traceback (most recent call last):
File "main.py", line 50, in <module>
print('\u6b4c\u5355\uff1a'+data.get('cdlist')[0].get('dissname')+' \u5f00\u59cb\u5199\u5165')
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-8: ordinal not in range(128)
由上面两个错误可以看出
真正诡异的是,这段代码可以正常运行在 zsh 里。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.