借助 python3 实现快速转换编码

借助 python3 实现快速转换编码

★ 转换unicode

在分析smali文件时(或者其他时候),经常会遇到unicode码,例如:

    const-string v2, "\u6821\u9a8c\u4e0d\u901a\u8fc7"

通过python3可以知道 “\u6821\u9a8c\u4e0d\u901a\u8fc7” 是什么字符。

例如:直接在python的环境下输入 “\u6821\u9a8c\u4e0d\u901a\u8fc7”, 然后回车。

$ python3
Python 3.6.1 (default, Mar 21 2017, 21:49:16)
>>> "\u6821\u9a8c\u4e0d\u901a\u8fc7"
'校验不通过'

★ 转换8进制编码

在wireshark截获的HTTP请求中,经常有8进制的编码,例如: “\346\234\213\345\217\213\345\234\210”。这个编码也可以用python来转换。

例如,b"\346\234\213\345\217\213\345\234\210".decode()

>>> b"\346\234\213\345\217\213\345\234\210".decode()
'朋友圈'

在 “\346\234\213\345\217\213\345\234\210” 前面的b是将字符串转换为字节数组,然后调用 bytes的接口decode()来转换8进制的编码。

将8进制转换为16进制:

>>> b"\346\234\213\345\217\213\345\234\210"
b'\xe6\x9c\x8b\xe5\x8f\x8b\xe5\x9c\x88'

★ 将中文转换为16进制

例如,将『微信』转换为16进制的字节数组:

>>> '微信'.encode()
b'\xe5\xbe\xae\xe4\xbf\xa1'

例如,将『微信』转换为16进制字符串:

>>> '微信'.encode().hex()
'e5beaee4bfa1'

将16进制字符串转换为字节数组。

>>> bytes.fromhex('e5beaee4bfa1')
b'\xe5\xbe\xae\xe4\xbf\xa1'

将16进制字符串转换为中文:

>>> bytes.fromhex('e5beaee4bfa1').decode()
'微信'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值