1. 程式人生 > >Python中文編碼格式轉換——usc2轉ansi

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如何進行互相轉換?

一樓[email protected]給出的答案是:

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

相關推薦

Python中文編碼格式轉換——usc2ansi

# @version:Python2.7 # usc2轉ansi 問題 一個帶有中文字串s,json.loads (s) 之後 對其進行列印,中文被轉換成了形如\u5e73\u5b9a的形式。 使用編碼工具中的編碼助手對其進行解碼得知,從\u5e73

python處理時間格式轉換,將xxxx年xx月xx日化為xxxx-xx-xx格式

publish_Time = "2018年10月10日" array = time.strptime(publish_Time, u"%Y年%m月%d日") try: publishTime = time.strftime("%Y-%m-%d", array) except Ex

Python 爬蟲編碼格式問題 gb2312轉換utf8

print (response.encoding)   輸出結果是   ISO-8859-1 使用的方法是 print response.text.encode('ISO-8859-1').decode(requests.utils.get_encodings_from_

python一些編碼轉換格式問題

python經常有一些編碼格式的問題西面有幾種轉碼的方式: unicodestring = u"Hello world"  # 將Unicode轉化為普通Python字串:"encode

Linux 定時指令碼crontab 中文亂碼 編碼格式轉換

  在linux下,利用定時指令碼跑一個xx.jar,把結果輸出到檔案中。結果裡面有中文,輸出到檔案後,顯示為亂碼。測試的時候發現,手動執行jar輸出正常;用shell指令碼執行輸出正常;當使用定時指令碼去跑的時候,輸出就是亂碼了。 原因:因為Unix/Linux下使用c

Python編碼格式說明及碼函式encode和decode的使用

從檔案編碼的方式來看,檔案可分為ASCII碼檔案和二進位制碼檔案兩種。 ASCII檔案也稱為文字檔案,這種檔案在磁碟中存放時每個字元對應一個位元組,用於存放對應的ASCII碼。例如,數5678的儲存形式為: ASC碼:  00110101 00110110 00110111 00111000      ↓

[python爬蟲]對html解析讀取編碼格式,統一碼為utf-8

from urllib.request import urlopen import chardet response=urlopen(url,timeout=3) html_byte=response

MacOS 自帶文件編碼格式轉換工具

utf 功能 關於 div lin gb2 exec 系統 encoding 【命令功能】iconv 是Linux操作系統用於將文本編碼格式從一種轉外另外一種的工具命令。【使用方法】 iconv [OPTION...] [-f ENCODING] [-t ENCODING]

Python 中文編碼

輸出結果 開頭 ref 文件 找到 編輯器 sci .cn 文件中 Python 中文編碼 前面章節中我們已經學會了如何用 Python 輸出 "Hello, World!",英文沒有問題,但是如果你輸出中文字符"你好,世界"就有可能會碰到中文編碼問題。 Python 文件

Linux 檔案編碼格式轉換

如果需要在Linux 中操作windows下的檔案,那麼經常遇到檔案編碼轉換的問題。 Windows中預設的檔案格式是GBK(gb2312),而Linux一般都是UTF-8。 檢視檔案編碼 在vim 中可以直接檢視檔案編碼 輸入命令 :set fileencoding 即可顯示檔案編碼格式。 檔案

python 將Excel格式轉換成HTML格式

import codecs import pandas as pd xd = pd.ExcelFile('XXX.xls') pd.set_option('display.max_colwidth',1000)#設定列的寬度,以防止出現省略號 df = xd.parse() with codecs.op

Linux下檔案編碼格式轉換

常常在Linux中操作Windows下的檔案時,會遇到亂碼的情形。常見的比如在Visual Studio 中寫的C\C++程式需要放到Linux主機上編譯,而程式的中文註釋則顯示為亂碼,比較嚴重的是由於編碼原因,Linux上的編譯器報錯。 這是由於Windows中預設的檔案格式是GBK(gb2312),而L

將字串的編碼格式轉換為utf-8

方式一: /** * 將字串的編碼格式轉

Matlab實現圖片格式轉換 pgmjpg

% 本示例程式將 H:\me的論文\其他\另一個數據\lfwcrop_grey\lfwcrop_grey\faces\目錄下面所有的 pgm 圖片轉換為 jpg 圖片 % 如果僅對一張 pgm 圖片作格式轉換,請直接看核心程式碼部分。 function [ ] = pgm2jpg(

python中文編碼

python2.x版本: python內部使用unicode 原始碼檔案預設是asci,但asci不存在中文編碼,解決:# -*- coding: utf-8 -*- 中文編碼有:gbk,gb2312,

python : R markdown 格式轉換為 html

R語言 rmarkdown包 會呼叫 pandoc-1.19.2.1 , library(rmarkdown) render("test.Rmd", "html_document")  試用了,發現轉換後的 HTML 視覺效果很差。 決定自己用 python 寫一個 

字元編碼格式轉換

int gb2312toutf8(const char *sourcebuf, size_t sourcelen, char *destbuf, size_t destlen) { ic

python中文編碼問題解決UnicodeEncodeError: 'ascii' codec can't encode characters in position 10-14: ordinal n

編碼報錯: https://www.baidu.com/s?wd=渴望飛的魚 UnicodeEncodeError: 'ascii' codec can't encode characters in

python中文編碼問題(decode('gbk').encode('utf-8')和decode('utf-8').encode('gbk')這對好基友)

    想必每個Python新手都會遇到Python編碼的問題,特別是使用到漢字的時候。UTF-8編碼是比較通用的編碼方式,它可以輸出中文,而Python2中預設的編碼方式一般是GBK,所以往往我們期

python - 中文編碼/ASCII

Python 中文編碼:為了處理漢字,程式設計師設計了用於簡體中文的GB2312和用於繁體中文的big5.    GB2312(1980年)一共收錄了7445個字元,包括6763個漢子和682個其他符號。漢字區的內碼範圍高位元組從B0-E7,低位元組A1-FE,佔用的碼位是72*94=67