当前位置: 首页 > 编程笔记 >

Python中还原JavaScript的escape函数编码后字符串的方法

郎和通
2023-03-14
本文向大家介绍Python中还原JavaScript的escape函数编码后字符串的方法,包括了Python中还原JavaScript的escape函数编码后字符串的方法的使用技巧和注意事项,需要的朋友参考一下

遇到一个问题需要用Python把JavaScript中escape的中文给还原,但找了大半天,也没有找到答案,只好自己深入研究解决方案。
我们先来看在js中escape一段文字的编码


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

alert(a);


输出:

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


咋一看,就感觉有点类似json格式,我们来看看标准的json格式编码同样的汉子“这是一串文字”

# encoding=utf-8

import json

a = '这是一串文字'

print json.dumps(a)


输出:
"\u8fd9\u662f\u4e00\u4e32\u6587\u5b57"

经过对比,其实就是js escape编码每个汉子都是“%u”符号加4位字符编码,而json编码每个汉子都是“\u”符号加4位字符编码,这样的话,我们可以利用字符串替换操作还原json格式,然后再使用json模块loads就好

# 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出来
后来,好不容易在一个站点上看到了更简便的方法。代码如下:

# 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反编码回中文字符。

 类似资料:
  • 本文向大家介绍js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解,包括了js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解的使用技巧和注意事项,需要的朋友参考一下 JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIC

  • 本文向大家介绍JavaScript中最简洁的编码html字符串的方法,包括了JavaScript中最简洁的编码html字符串的方法的使用技巧和注意事项,需要的朋友参考一下 html字符串是指'<div id=”a”>aklsdjfklsjdfl</div>'这样的带html特殊符号的字符串,我们通常要对他进行处理再输出以免输出成了真正的html元素,也就是把<变成&lt;这样的html符号代码。

  • 本文向大家介绍python清除字符串前后空格函数的方法,包括了python清除字符串前后空格函数的方法的使用技巧和注意事项,需要的朋友参考一下 python有时候需要清除字符串前后空格,而字符本身的空格不需要清除掉,那就不能用正则re.sub来实现。 这时用到strip()函数 用法: 以上这篇python清除字符串前后空格函数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家

  • 本文向大家介绍Python字符编码与函数的基本使用方法,包括了Python字符编码与函数的基本使用方法的使用技巧和注意事项,需要的朋友参考一下 一、Python2中的字符存在的解码编码问题 如果是现在正在用Python2的人应该都知道存在字符编码问题,就举一个最简单的例子吧:Python2是无法在命令行直接打印中文的,当然他也是不会报错的,顶多是一堆你看不懂的乱码。如果想在直接显示中文,我们是可以

  • 本文向大家介绍JavaScript将字符串转换成字符编码列表的方法,包括了JavaScript将字符串转换成字符编码列表的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript将字符串转换成字符编码列表的方法。分享给大家供大家参考。具体如下: JavaScript将字符串转换成字符编码列表,例如foo转换成 [112,111,111] 方法 1: JavaScript 1

  • 本文向大家介绍如何在JavaScript中解码编码的字符串?,包括了如何在JavaScript中解码编码的字符串?的使用技巧和注意事项,需要的朋友参考一下 解码 在JavaScript中,使用unescape()方法解码字符串。该方法采用一个字符串,该字符串由escape()方法编码,并对其进行解码。字符串中的十六进制字符将被使用unescape()方法表示的实际字符替换。 语法 示例 接下来,两