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 這種是啥編碼誒,怎麼轉成漢字
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章