Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字节转换为ascii并在Python中反向保存?_Python_Python 3.x_String - Fatal编程技术网

将字节转换为ascii并在Python中反向保存?

将字节转换为ascii并在Python中反向保存?,python,python-3.x,string,Python,Python 3.x,String,我正在使用python 3.5 我有两个字节字符串,表示在各种编解码器中编码的文本:b'mybytesstring',现在一些是Utf8编码的,另一些是latin1等等。我想按以下顺序说明的是: 将字节字符串转换为类似ascii的字符串 将类似ascii的字符串转换回字节字符串 使用正确的编解码器解码字节字符串 问题是,我必须将字节字符串移动到不接受字节对象的位置,因此我正在寻找一种解决方案,使我能够安全地执行bytes->ascii->bytes。为此使用encode和decode方法,并

我正在使用python 3.5

我有两个字节字符串,表示在各种编解码器中编码的文本:
b'mybytesstring'
,现在一些是
Utf8
编码的,另一些是
latin1
等等。我想按以下顺序说明的是:

  • 将字节字符串转换为类似ascii的字符串
  • 将类似ascii的字符串转换回字节字符串
  • 使用正确的编解码器解码字节字符串

问题是,我必须将字节字符串移动到不接受字节对象的位置,因此我正在寻找一种解决方案,使我能够安全地执行
bytes->ascii->bytes

为此使用
encode
decode
方法,并为它们提供所需的编码。我不清楚你是否事先知道编码。如果你不知道,你就有麻烦了。您可能不得不以某种方式猜测编码,冒着垃圾输出的风险。

好的,我找到了一个比我想象的简单得多的解决方案

x = x.decode().encode('ascii',errors='ignore')
mybytes = 'ëýđþé'.encode()
str_mybytes = str(mybytes)
again_mybytes = eval(str_mybytes)
decoded = again_mybytes.decode('utf8')

你的意思是说你有不同的
字节
对象,每个对象的编码都不同吗?我不明白您想做什么
字节--ascii-->str--?-->字节
?是的,我有一组
字节
对象,所有对象都有不同的编码。我需要将它们全部放入一个容器中,该容器不只接受
字节
对象
字符串
对象。然后我把它们从容器中拿出来,我可以用正确的编码对它们进行正确的解码。如果你不知道编码,你可以尝试使用猜测。虽然使用
eval
确实有效,但对于我想做的事情来说,它有点不安全。我找到了一个避免评估的答案: