收到一个字符串,中间的中文是以UTF-8编码形式传过来的,收到的数据是这样的:。
{"info":"\u767b\u5f55\u6210\u529f","status":1,"url":"\/host\/Index\/index.html"}
这个还不是json,而是字符串数据类型。这个中间部分‘'\u767b\u5f55\u6210\u529f' 是uft-8的,但传来的是ascii码形式。在网上查了半天也没有找到一个可以直接将其显示为中文的方法,最后是用了个本方法来处理的,
思路如下,
1.先将字符串进行处理UTF-8 处理的形式是u'\u....\u....' 需要将字符串的双引号进行替换并在前面加‘u’ 使用replace()进行替换成如下形式:
{'info':u'\u767b\u5f55\u6210\u529f','status':1,'url':'\/host\/Index\/index.html'}
2.将其转换为字典形式,这个时候单独读数据的时候已经是中文了,使用eval方法转换成字典格式
3.将其变为json格式,可以整个一条数据读出来都是中文了 使用dumps()将其变为json格式
ttt= result.read() #读过来的字符串
tt2= ttt.replace('\"','\'')
tt3= tt2.replace('\'\\u','u\'\\u') #通过两次替换将其变成可以解码的形式
tt4=eval(tt3) #变成字典形式
tt5=json.dumps(tt4,ensure_ascii=False) #变成json形式
print tt 5
#最后打印成:
{"info": "登录成功", "status": 1, "url": "\\/host\\/Index\\/index.html"}
感觉应该有成熟的处理方式啊,这个是走了弯路的......