小编今天在搬码时要用python将一段unicode序列转换成utf-8字符串,娴熟的写下xxx饱终柯肢.decode('utf-8'),居然报错了:UnicodeEncodeErr泠贾高框or:'ascii'codeccan'tencodecharacteru'\u5728'inposition1即使在文件头声明#encoding=utf8也是没用的,需要修改编码设置:sys.setdefaultencoding("utf8")。下面小编模拟一下这个修复过程。
工具/原料
python解释器
电脑
方法/步骤
1、进入python解析器,输入运行以下代码:s=u'\u5728's.decode('utf-8')
2、可以看到问题重现了。先来看看当前的编码,输入运行以下代码:importsyssys.getdefaultencoding()
3、可以看出当前编码是ascii。下面我们来尝试设置编码为utf-8,输入运行以下代码:sys.setdefaultencoding("utf8")
4、出错了,有木有?哈哈,衡痕贤伎sys模块要重新载入才行的哦!输入运行以下代码:reload(sys)sys.setdefaultencoding("utf8")
5、设置编码成功后重新执行以下代码:s.decode('utf-8')问题解决!