编码字符串字节在Python
我一直在试图通过利用从命令行和编码输入(加密文本),使用下面的代码的加密文本进行编码:编码字符串字节在Python
# -*- coding: utf-8 -*-
import sys
a = sys.argv[1]
b = a.encode('utf-8')
print(a)
print('\n')
print(b)
OUTPUT:
$python3 test.py 'b\x90\x89\xc6g\xa6\x15I\x9bKD\xd4s\xf2\x9f\x82Y\xedaa}0wL'
b\x90\x89\xc6g\xa6\x15I\x9bKD\xd4s\xf2\x9f\x82Y\xedaa}0wL
b'b\\x90\\x89\\xc6g\\xa6\\x15I\\x9bKD\\xd4s\\xf2\\x9f\\x82Y\\xedaa}0wL'
我需要完全相同的输出,我从终端输入的只是字节来执行解密操作。当我尝试通过下面的代码来代替它:
# -*- coding: utf-8 -*-
import sys
a = sys.argv[1]
b = a.encode('utf-8').replace('\\','\')
print(a)
print('\n')
print(b)
OUTPUT:
$python3 test.py 'b\x90\x89\xc6g\xa6\x15I\x9bKD\xd4s\xf2\x9f\x82Y\xedaa}0wL'
File "testsys.py", line 6
b = a.encode('utf-8').replace('\\','\')
^
SyntaxError: EOL while scanning string literal
我不知道该错误,但在该行:
b = a.encode().replace('\\\','\'
)
但粗体的圆括号仍然有颜色,如字符串。
如何才能获得完全相同的字符串只是以字节为单位?
\'是一个逃脱的单引号字符。 \\是一个转义反斜线字符。
的字符串从来没有得到封闭
是但如何解决呢? –
你逃避关闭的报价'
b = a.encode('utf-8').replace('\\','\')
应该是:
b = a.encode('utf-8').replace('\\','\'')
TypeError:预期字节,bytearray或缓冲区兼容对象 –
您提供的数据不能与UTF-8编码。
a = 'b\x90\x89\xc6g\xa6\x15I\x9bKD\xd4s\xf2\x9f\x82Y\xedaa}0wL'
>>> b = a.encode('utf-8')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0x90 in position 1: ordinal
not in range(128)
如果它真的对你有效,你检查解密编码的字符串,你得到了不同于原始字符串的答案。因为通过utf-8编码字符串并不意味着你正在改变数据的完整性。
是的代码在python解释器上正常工作 –
我使用python3 –