最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中還原JavaScript的escape函數(shù)編碼后字符串的方法

 更新時(shí)間:2014年08月22日 09:30:11   投稿:junjie  
這篇文章主要介紹了Python中解析JavaScript的escape函數(shù)編碼后字符串的方法,即Python中如何還原JavaScript escape函數(shù)編碼后的字符串,需要的朋友可以參考下

遇到一個(gè)問題需要用Python把JavaScript中escape的中文給還原,但找了大半天,也沒有找到答案,只好自己深入研究解決方案。
我們先來看在js中escape一段文字的編碼

復(fù)制代碼 代碼如下:

a = escape('這是一串文字');
alert(a);

輸出:
復(fù)制代碼 代碼如下:

%u8FD9%u662F%u4E00%u4E32%u6587%u5B57

咋一看,就感覺有點(diǎn)類似json格式,我們來看看標(biāo)準(zhǔn)的json格式編碼同樣的漢子“這是一串文字”
復(fù)制代碼 代碼如下:

# encoding=utf-8
import json
a = '這是一串文字'
print json.dumps(a)

輸出:
復(fù)制代碼 代碼如下:
"\u8fd9\u662f\u4e00\u4e32\u6587\u5b57"

經(jīng)過對(duì)比,其實(shí)就是js escape編碼每個(gè)漢子都是“%u”符號(hào)加4位字符編碼,而json編碼每個(gè)漢子都是“\u”符號(hào)加4位字符編碼,這樣的話,我們可以利用字符串替換操作還原json格式,然后再使用json模塊loads就好
復(fù)制代碼 代碼如下:

# encoding=utf-8
import json
 
# js escape 字符串編碼
c = '%u8FD9%u662F%u4E00%u4E32%u6587%u5B57'
 
# 還原Json對(duì)象
jsonObj =  '"'+"".join([(i and "\\"+i) for i in c.split('%')])+'"'
 
print json.loads(jsonObj)

特別記得在把“%”替換為“\”符號(hào)以后還要再使用雙引號(hào)把字符串包一下,才能算是一個(gè)json對(duì)象,然后才能json.loads出來
后來,好不容易在一個(gè)站點(diǎn)上看到了更簡(jiǎn)便的方法。代碼如下:
復(fù)制代碼 代碼如下:

# encoding=utf-8
c = '%u8FD9%u662F%u4E00%u4E32%u6587%u5B57'
print "".join([(len(i)>0 and unichr(int(i,16)) or "") for i in c.split('%u')])

它的思路其實(shí)都差不多,把“%u”號(hào)替換掉,剩下每一個(gè)都是4位固定長(zhǎng)度的字符編碼,最后在unichr反編碼回中文字符。

相關(guān)文章

  • Django中的事務(wù)ATOMIC_REQUESTS

    Django中的事務(wù)ATOMIC_REQUESTS

    這篇文章主要介紹了Django中的事務(wù)ATOMIC_REQUESTS使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • python調(diào)用opencv實(shí)現(xiàn)貓臉檢測(cè)功能

    python調(diào)用opencv實(shí)現(xiàn)貓臉檢測(cè)功能

    這篇文章主要介紹了python調(diào)用opencv實(shí)現(xiàn)貓臉檢測(cè)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Python3 xml.etree.ElementTree支持的XPath語法詳解

    Python3 xml.etree.ElementTree支持的XPath語法詳解

    這篇文章主要介紹了Python3 xml.etree.ElementTree支持的XPath語法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python繪制分段函數(shù)的實(shí)現(xiàn)示例

    Python繪制分段函數(shù)的實(shí)現(xiàn)示例

    本文主要介紹了Python繪制分段函數(shù)的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Python中內(nèi)置函數(shù)filter函數(shù)用法詳解

    Python中內(nèi)置函數(shù)filter函數(shù)用法詳解

    filter()函數(shù)是Python內(nèi)置的另一個(gè)有用的高階函數(shù),filter()函數(shù)接收一個(gè)函數(shù)f和一個(gè)序列,函數(shù)f的作用是對(duì)每個(gè)元素進(jìn)行判斷,返回True或False,下面這篇文章主要給大家介紹了關(guān)于Python中內(nèi)置函數(shù)filter函數(shù)用法的相關(guān)資料,需要的朋友可以參考下
    2024-05-05
  • 關(guān)于Python的異常捕獲和處理

    關(guān)于Python的異常捕獲和處理

    程序在運(yùn)行過程當(dāng)中,不可避免的會(huì)出現(xiàn)一些錯(cuò)誤,比如:使用了沒有賦值過的變量,使用了不存在的索引,一個(gè)數(shù)字除以0,這些錯(cuò)誤在程序中,我們稱其為異常,那么如何處理這些異常呢,今天我們就來看一看
    2023-04-04
  • Python中按鍵來獲取指定的值

    Python中按鍵來獲取指定的值

    今天小編就為大家分享一篇關(guān)于Python中按鍵來獲取指定的值,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • django的模型類管理器——數(shù)據(jù)庫操作的封裝詳解

    django的模型類管理器——數(shù)據(jù)庫操作的封裝詳解

    這篇文章主要介紹了django的模型類管理器——數(shù)據(jù)庫操作的封裝詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 在?Python?中使用變量創(chuàng)建文件名的方法

    在?Python?中使用變量創(chuàng)建文件名的方法

    這篇文章主要介紹了在?Python?中使用變量創(chuàng)建文件名,格式化的字符串文字使我們能夠通過在字符串前面加上 f 來在字符串中包含表達(dá)式和變量,本文給大家詳細(xì)講解,需要的朋友可以參考下
    2023-03-03
  • 對(duì)Python3 goto 語句的使用方法詳解

    對(duì)Python3 goto 語句的使用方法詳解

    今天小編就為大家分享一篇對(duì)Python3 goto 語句的使用方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02

最新評(píng)論

房山区| 新丰县| 邓州市| 泌阳县| 松江区| 吴忠市| 三门峡市| 蕲春县| 靖宇县| 马尔康县| 张家界市| 清流县| 阿坝县| 太仆寺旗| 崇阳县| 江津市| 都安| 柘荣县| 巴彦淖尔市| 布尔津县| 陆川县| 苗栗县| 杭锦旗| 濉溪县| 红河县| 措美县| 阿克苏市| 漳平市| 津市市| 海晏县| 永和县| 五大连池市| 临高县| 色达县| 瓮安县| 常州市| 新余市| 博兴县| 富源县| 西昌市| 高青县|