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

收到一个字符串,中间的中文是以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"}


感觉应该有成熟的处理方式啊,这个是走了弯路的......




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值