python2 7中文編碼 python2 7

2021-10-12 10:49:52 字數 1716 閱讀 9635

我從外部api中獲得了乙個字串:

"\u4ece\u8d77\u70b9\u5411\u6b63\u5357\u65b9\u5411\u51fa\u53d1,\u884c\u9a76170\u7c73,\u76f4\u884c\u8fdb\u5165\u4e2d\u5173\u6751\u4e1c\u8def"

被傳給了變數a,以utf8位元組串,所以:

a'\\u4ece\\u8d77\\u70b9\\u5411\\u6b63\\u5357\\u65b9\\u5411\\u51fa\\u53d1,\\u884c\\u9a76170\\u7c73,\\u76f4\\u884c\\u8fdb\\u5165\\u4e2d\\u5173\\u6751\\u4e1c\\u8def'

print a

\u4ece\u8d77\u70b9\u5411\u6b63\u5357\u65b9\u5411\u51fa\u53d1,\u884c\u9a76170\u7c73,\u76f4\u884c\u8fdb\u5165\u4e2d\u5173\u6751\u4e1c\u8def

這就是已經成了這樣的現實狀態。

我要把a變成unicode字元要怎麼做?

# 把a變成:

u'\u4ece\u8d77\u70b9\u5411\u6b63\u5357\u65b9\u5411\u51fa\u53d1,\u884c\u9a76170\u7c73,\u76f4\u884c\u8fdb\u5165\u4e2d\u5173\u6751\u4e1c\u8def'無視a

裡的那些轉義

麼?那u'' + a

就好了……

import re

str='\\u4ece\\u8d77\\u70b9\\u5411\\u6b63\\u5357\\u65b9\\u5411\\u51fa\\u53d1\\u884c\\u9a76170\\u7c73,\\u76f4\\u884c\\u8fdb\\u5165\\u4e2d\\u5173\\u6751\\u4e1c\\u8def'

pat=re.compile('\\\\u((\d|[a-f]))')

def change_str(u_str):

return unichr(int(u_str.group(1),16))

tmp=pat.sub(change_str,str)

print(tmp)

弄了老半天只有這樣了。。。不知道有沒更好的。。

樓下的str.decode(『unicode-escape』)直接可以

str='\\u4ece\\u8d77\\u70b9\\u5411\\u6b63\\u5357\\u65b9\\u5411\\u51fa\\u53d1\\u884c\\u9a76170\\u7c73,\\u76f4\\u884c\\u8fdb\\u5165\\u4e2d\\u5173\\u6751\\u4e1c\\u8def'

print(str.decode('unicode-escape'))

出現這個問題的主要原因是python吧unicode編碼當成了普

通的字串,因此把原來的斜槓又加了乙個斜槓進行轉義

個人認為比較簡單的解決方法是用 decode(『unicode-escape』)

str = 「\u4ece\u8d77\u70b9\u5411\u6b63\u5357\u65b9\u5411\u51fa\u53d1」

uni_str = str.decode(『unicode-escape』)

print uni_str

簡單粗暴

python2 7中文編碼報錯問題

python2.7 預設編碼為ascii而不是utf 8,所以在進行含中文的csv檔案資料分析時會遇到報錯的問題。錯誤 non ascii character xe5 in file data.py on line 15,but no encoding declared see for detail...

python2 7 中文顯示

基於學習廖雪峰大神的python教程,在其中的乙個迴圈中,中文不能正常顯示。以下是那段迴圈 birth raw input birth if birth 2000 print 00前 else print 00後 執行後 出現以下錯誤 請教了一系列的大神,牛人後,是編碼格式的問題。之前我陷入的誤區 ...

python 2 7中文亂碼

寫python的環境是python3.7,執行python的環境是python2.7,原本完美顯示的中文小提示一 驗喂了狗,力挽狂瀾為顯示中文義不容辭。亂碼原因 編碼和解碼時用了不同或者不相容的字符集。例如 用utf 8編碼儲存,用gbk解碼顯示會造成亂碼。參考自 十分鐘搞清字符集和字元編碼 這裡的...