Python中文编码格式转换——usc2转ansi

# @version:Python2.7
# usc2转ansi

问题

一个带有中文字符串s,json.loads (s) 之后

对其进行打印,中文被转换成了形如\u5e73\u5b9a的形式。

使用编码工具中的编码助手对其进行解码得知,从\u5e73\u5b9a到中文'平定'的转换为usc2转ansi

既然知道了两种字符的编码格式,剩下的就只剩如何解决了。

解决方法

这儿有一个类似的问题

有一个字符串, usc2内容是:
%u5728%u5e94%u7b54%u4e4b%u524d%u53d1%u9001%u8baf%u606f%u6210%u529f%uff0c%u8bf7%u7b49%u5f85%u7b54%u590d…

对应的ansi的内容是: 在应答之前发送讯息成功,请等待答复…

在python2如何进行互相转换?

一楼V2EX@cute给出的答案是:

s = '%u5728%u5e94%u7b54%u4e4b%u524d%u53d1%u9001%u8baf%u606f%u6210%u529f%uff0c%u8bf7%u7b49%u5f85%u7b54%u590d' 
print s.replace('%u','\\u').decode('raw_unicode_escape').encode('gbk')

我测试了一下结果输出是乱码,于是对以上的解决方法进行了修改。

s.replace('%u','\\u').decode('raw_unicode_escape').encode('utf-8')

即可正常输出中文:

在应答之前发送讯息成功,请等待答复

最后

实际上我的需求跟上面的例子正好相反,我需要将中文转换成为形如\u5e73\u5b9a的格式。

在以上的解决方案中逆向走就OK了,比如:

print '平定'.decode('utf-8').encode('raw_unicode_escape')

# 输出为:\u5e73\u5b9a

print '北京'.decode('utf-8').encode('raw_unicode_escape')

# 输出为:\u5317\u4eac

Done

  1. V2EX-python2 如何将usc2与ansi互相进行编码转换?
  2. 精易论坛-\u5927 这种是啥编码诶,怎么转成汉字
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值