python2.7中文有限制么_python2.7
我從外部API中獲得了一個(gè)字符串:
"\u4ece\u8d77\u70b9\u5411\u6b63\u5357\u65b9\u5411\u51fa\u53d1,\u884c\u9a76170\u7c73,\u76f4\u884c\u8fdb\u5165\u4e2d\u5173\u6751\u4e1c\u8def"
被傳給了變量a,以u(píng)tf8字節(jié)串,所以:
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
這就是已經(jīng)成了這樣的現(xiàn)實(shí)狀態(tài)。
我要把a(bǔ)變成unicode字符要怎么做?
# 把a(bǔ)變成:
u'\u4ece\u8d77\u70b9\u5411\u6b63\u5357\u65b9\u5411\u51fa\u53d1,\u884c\u9a76170\u7c73,\u76f4\u884c\u8fdb\u5165\u4e2d\u5173\u6751\u4e1c\u8def'
無(wú)視
a
里的那些轉(zhuǎn)義
\
么?那
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]){4})')
def change_str(u_str):
return unichr(int(u_str.group(1),16))
tmp=pat.sub(change_str,str)
print(tmp)
弄了老半天只有這樣了。。。不知道有沒(méi)更好的。。
樓下的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'))
出現(xiàn)這個(gè)問(wèn)題的主要原因是python吧Unicode編碼當(dāng)成了普
通的字符串,因此把原來(lái)的斜杠又加了一個(gè)斜杠進(jìn)行轉(zhuǎn)義
個(gè)人認(rèn)為比較簡(jiǎn)單的解決方法是用 decode(‘unicode-escape’)
str = “\u4ece\u8d77\u70b9\u5411\u6b63\u5357\u65b9\u5411\u51fa\u53d1”
uni_str = str.decode(‘unicode-escape’)
print uni_str
簡(jiǎn)單粗暴
總結(jié)
以上是生活随笔為你收集整理的python2.7中文有限制么_python2.7的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python中print是什么意思_py
- 下一篇: 人工蜂群算法python_人工蜂群算法-