百度了很久,setdefaultencoding的作用说是encode之前会用默认的编码方式先解码
第一种方式报错
datas = json.loads(datas)
name = datas['data']['travel'][0]['surname']
name = urllib.unquote(name).decode('utf-8').encode('raw-unicode-escape')
报错信息
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)
第二种不报错
import sys
reload(sys)
sys.setdefaultencoding('utf8')
name = datas['data']['travel'][0]['surname']
name = urllib.unquote(name).encode('raw-unicode-escape')
直接指明decode的解码方式为什么不行?
decode('utf-8')的作用和# -*- coding: UTF-8 -*-这个声明的作用是一样的吗?
encode之前默认的解码,和decode的解码不是一个东西?