python - 为什么我的 unicode 字符串的最后一部分被吃掉了?
问题描述
我正在尝试将 ascii 生成为 javascript unicode,我可以生成它,但在检查了某些方面之后。我注意到我的程序正在吃字符串的最后一部分。我怎样才能解决这个问题?
import binascii
content = 'string\n'
first_byte = ""
second_byte = ""
shellcode = ""
flag = 0
for b in content:
if flag == 0:
shellcode += "%u"
first_byte = binascii.hexlify(b)
flag += 1
else:
second_byte = binascii.hexlify(b)
shellcode += second_byte
shellcode += first_byte
flag = 0
print shellcode
我的脚本输出
%u6c62%u6361%u6c6b%u6965%u7574%u
想要的,但通常是任何字符串
%u6c62%u6361%u6c6b%u6965%u7574%u0a73
解决方案
您正在使用该变量flag
将输入分成两部分。偶数字符被保存first_byte
,当你得到奇数字符时,你将两个都保存到shellcode
。在循环结束时first_byte
,如果字符数是偶数,则您有一个尚未输出的字符。
推荐阅读
- python - 如何在 PyBullet 中禁用 X 和 Y 轴移动
- django - django 3.1 将原始列别名传递给 QuerySet.order_by() 已弃用
- database - 如何将房间数据库实现到数据类具有自定义承包商和 setter/getter 属性
- java - 如何在Java的循环中连接2个或更多字符串
- ios - StackView 中的 WKWebView 未正确调整大小
- c++ - 计算单独面上的平滑法线
- favicon - favicon 不在手机上显示谷歌搜索结果
- c# - C# If 循环条件问题(这不应该是一个无限循环吗?)
- typescript - 如何在实现接口并匹配条件的数组中查找对象
- python - 如何实现 MinPooling2D 池化层