首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Python将字符串编码为Bytes

用Python将字符串编码为Bytes
EN

Stack Overflow用户
提问于 2016-04-25 15:19:22
回答 3查看 246关注 0票数 0

通过从命令行获取输入(加密文本)并使用以下代码进行编码,我一直试图对加密文本进行编码:

代码语言:javascript
复制
# -*- coding: utf-8 -*-
import sys
a = sys.argv[1]
b = a.encode('utf-8')
print(a)
print('\n')
print(b)

产出:

代码语言:javascript
复制
$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'

我需要完全相同的输出,我输入的终端只是字节,以执行解密操作。当我试图用以下代码替换它时:

代码语言:javascript
复制
# -*- coding: utf-8 -*-
import sys
a = sys.argv[1]
b = a.encode('utf-8').replace('\\','\')
print(a)
print('\n')
print(b)

产出:

代码语言:javascript
复制
$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('\\\','\')

但是,粗体中的括号仍然是与字符串一样的颜色。

如何才能得到完全相同的字符串(以字节为单位)?

EN

回答 3

Stack Overflow用户

发布于 2016-04-25 15:37:02

“是转义单引号。是一个转义反斜杠字符。

字符串的引号从未关闭。

票数 0
EN

Stack Overflow用户

发布于 2016-04-25 15:56:25

您正在转义关闭的'

代码语言:javascript
复制
b = a.encode('utf-8').replace('\\','\')

应:

代码语言:javascript
复制
b = a.encode('utf-8').replace('\\','\'')
票数 0
EN

Stack Overflow用户

发布于 2016-04-25 15:58:06

您提供的数据不能用utf-8编码。

代码语言:javascript
复制
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对字符串进行编码并不意味着要更改数据的完整性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36844688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档