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

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

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

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

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

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

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

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

咋一看,就感覺有點類似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)過對比,其實就是js escape編碼每個漢子都是“%u”符號加4位字符編碼,而json編碼每個漢子都是“\u”符號加4位字符編碼,這樣的話,我們可以利用字符串替換操作還原json格式,然后再使用json模塊loads就好
復(fù)制代碼 代碼如下:

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

特別記得在把“%”替換為“\”符號以后還要再使用雙引號把字符串包一下,才能算是一個json對象,然后才能json.loads出來
后來,好不容易在一個站點上看到了更簡便的方法。代碼如下:
復(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')])

它的思路其實都差不多,把“%u”號替換掉,剩下每一個都是4位固定長度的字符編碼,最后在unichr反編碼回中文字符。

相關(guān)文章

  • Django中的事務(wù)ATOMIC_REQUESTS

    Django中的事務(wù)ATOMIC_REQUESTS

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

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

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

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

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

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

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

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

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

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

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

    Python中按鍵來獲取指定的值

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

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

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

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

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

    對Python3 goto 語句的使用方法詳解

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

最新評論

二连浩特市| 富源县| 枣强县| 阜新| 新营市| 临泉县| 甘泉县| 鱼台县| 鄂托克前旗| 开阳县| 依安县| 毕节市| 淄博市| 青浦区| 陇川县| 华坪县| 陆良县| 临湘市| 马龙县| 来安县| 泰宁县| 宁波市| 通化县| 吕梁市| 固原市| 南京市| 勃利县| 广宁县| 平阳县| 南宫市| 夏河县| 广水市| 北安市| 旬邑县| 合肥市| 通榆县| 彩票| 同德县| 定襄县| 凤山市| 阿拉善右旗|