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

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

2018-01-30 09:59 1456 查看
# @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

V2EX-python2 如何将usc2与ansi互相进行编码转换?

精易论坛-\u5927 这种是啥编码诶,怎么转成汉字
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 编码