我一直在尝试通过从命令行获取输入(加密文本)并使用以下代码进行编码来对加密文本进行编码:
$scope.apply
输出:
# -*- coding: utf-8 -*-
import sys
a = sys.argv[1]
b = a.encode('utf-8')
print(a)
print('\n')
print(b)
我需要完全相同的输出,我从终端输入只是以字节为单位来执行解密操作。当我尝试用以下代码替换它时:
$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)
我不知道错误,但在行中:
$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
的)
但是粗体括号仍然像字符串那样着色。
如何以字节为单位获取完全相同的字符串?
答案 0 :(得分:0)
\'是一个转义的单引号字符。 \\是一个逃脱的反斜杠字符。
字符串的引用永远不会被关闭
答案 1 :(得分:0)
您正在逃避结束'
b = a.encode('utf-8').replace('\\','\')
应该是:
b = a.encode('utf-8').replace('\\','\'')
答案 2 :(得分:0)
您提供的数据无法使用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编码字符串并不意味着你正在改变数据的完整性。