为了账号安全,请及时绑定邮箱和手机立即绑定

重定向到文件时出现UnicodeDecodeError

重定向到文件时出现UnicodeDecodeError

至尊宝的传说 2019-10-14 15:20:59
我在Ubuntu终端(将编码设置为utf-8)中运行了两次,分别使用./test.py,然后使用./test.py >out.txt:uni = u"\u001A\u0BC3\u1451\U0001D10C"print uni如果没有重定向,它将打印垃圾。通过重定向,我得到了UnicodeDecodeError。有人可以解释为什么仅在第二种情况下才得到错误,或者更好地给出两种情况下幕后情况的详细解释吗?
查看完整描述

3 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

打印时进行编码


uni = u"\u001A\u0BC3\u1451\U0001D10C"

print uni.encode("utf-8")

这是因为当您手动运行脚本时,python会对它进行编码,然后再将其输出到终端,而当您通过管道传输时,python本身不会对其进行编码,因此在执行I / O时必须手动进行编码。


查看完整回答
反对 回复 2019-10-14
  • 3 回答
  • 0 关注
  • 459 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信