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 这种是啥编码诶,怎么转成汉字

你可能感兴趣的:(python)