Python - 如何将特殊字符转换为unicode表示?

时间:2017-04-27 17:34:19

标签: python json python-2.7 unicode unicode-escapes

在字典中,我使用equals signal得到以下值:

{"appVersion":"o0u5jeWA6TwlJacNFnjiTA=="}

要明确,我需要替换unicode表示=的{​​{1}}(基本上是'\u003d'的反向过程)。如何将unicode值设置为变量而不用两个scapes([json.loads()][1])存储值?。

我尝试过不同的方式,包括enconde / decode,repr(),unichr(61)等,甚至搜索很多,找不到任何方法,所有方法给我以下最终结果(或原始结果):

\\u003d

从现在开始,感谢您的关注。

修改

当我调试代码时,它给出了带有2个转义的变量的值。程序将获得此值并使用它来执行以下操作,包括额外的转义。我使用此代码通过'o0u5jeWA6TwlJacNFnjiTA\\u003d\\u003d' 构造一个json,返回的结果是一个带有2个转义的unicode。

在JSON构造之后跟踪最终结果的打印。我需要找到一种方法,只需一次转义即可将值存储在var中。

enter image description here

我不知道是否有所不同,但我这样做是为了自定义BURP插件,操纵一些选定的请求。

这是我的POC的图像,获取var的值。

enter image description here

1 个答案:

答案 0 :(得分:1)

实际上没有添加额外的反斜杠,Python解释器使用repr()来表示当包含\的字符串被打印时,它是反斜杠而不是\ t或\ n: 我希望这会有所帮助:

>>> t['appVersion'] = t["appVersion"].replace('=', '\u003d')

>>> t['appVersion']
'o0u5jeWA6TwlJacNFnjiTA\\u003d\\u003d'

>>> print(t['appVersion'])
o0u5jeWA6TwlJacNFnjiTA\u003d\u003d

>>> t['appVersion'] == 'o0u5jeWA6TwlJacNFnjiTA\u003d\u003d'
True