您的位置:首页 > 编程语言 > Python开发

python 如何将收到的字符串中的编码部分显示为中文

2017-03-22 15:27 477 查看
收到一个字符串,中间的中文是以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"}

感觉应该有成熟的处理方式啊,这个是走了弯路的......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐