分享

数据显示问题'1.0\x14\x14\x14\x14\x14\x14'

grinsky 发表于 2017-3-9 10:59:23 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 7168
一开始定义了个字符串“1.0”,经过ord ,chr ,des转换加密后
在解密转换回来,这个时候发现“1.0”,变成了 '1.0\x14\x14\x14\x14\x14\x14'
虽然print出来还是‘1.0’.但有点担心这个在传输给其他程序使用时会有问题吗?
想弄明白“1.0” 到 '1.0\x14\x14\x14\x14\x14\x14'的问题,请各位提点下。谢谢!


x = '1.0\x14\x14\x14\x14\x14\x14'

x
Out[49]: '1.0\x14\x14\x14\x14\x14\x14'

len(x)
Out[50]: 9

print x
1.0

type(x)
Out[52]: str

已有(2)人评论

跳转到指定楼层
nextuser 发表于 2017-3-9 12:38:21
楼主可以总结规律,如果都是\x14\x14\x14\x14\x14\x14这种情况,可以直接截断。如果不是的话,可能解密有问题
回复

使用道具 举报

grinsky 发表于 2017-3-9 13:56:39
本帖最后由 grinsky 于 2017-3-9 14:08 编辑
nextuser 发表于 2017-3-9 12:38
楼主可以总结规律,如果都是\x14\x14\x14\x14\x14\x14这种情况,可以直接截断。如果不是的话,可能解密有问 ...

其他的都正确解密出来了,应该是最后剩下2位“.0”不足8位补了6个空格。
解密的时候不知道为什么空格变成了“\x14”(应该是\x32),虽然在输出的时候都是空的,但使用rstrip()方法无法去除掉。
现在只能使用 x[:x.index("\x14")]的方式将x中后面的“\x14”字符去除掉。
至于出现的原因 还是不知道……


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条