Python 如何将编码字符串转换为可读格式?

Python 如何将编码字符串转换为可读格式?,python,python-3.6,Python,Python 3.6,我使用scipy.io.loadmat导入了一个mat文件,其中一个变量是numpy.ndarray字符串,看起来像 'a\x00\x00\x00cytns\x00\x00\x00\x00\x00o\x00\x00\x00cy\x00ie\x00z-\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00u\x00\x00\x00t\x00\x00z' 如何在Python3中将它们转换为可读格式? StringIO模块在python2中可能会有所帮助 演示:

我使用scipy.io.loadmat导入了一个mat文件,其中一个变量是numpy.ndarray字符串,看起来像

'a\x00\x00\x00cytns\x00\x00\x00\x00\x00o\x00\x00\x00cy\x00ie\x00z-\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00u\x00\x00\x00t\x00\x00z'
如何在Python3中将它们转换为可读格式?

StringIO模块在python2中可能会有所帮助

演示:

# -*- coding: utf-8 -*-
import StringIO
s = 'a\x00\x00\x00cytns\x00\x00\x00\x00\x00o\x00\x00\x00cy\x00ie\x00z-\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00u\x00\x00\x00t\x00\x00z'
print StringIO.StringIO(s).getvalue()

# using decode method
print s.decode('utf-8')
acytnsocyiez--utz
acytnsocyiez--utz
输出:

# -*- coding: utf-8 -*-
import StringIO
s = 'a\x00\x00\x00cytns\x00\x00\x00\x00\x00o\x00\x00\x00cy\x00ie\x00z-\x00\x00\x00\x00\x00-\x00\x00\x00\x00\x00\x00u\x00\x00\x00t\x00\x00z'
print StringIO.StringIO(s).getvalue()

# using decode method
print s.decode('utf-8')
acytnsocyiez--utz
acytnsocyiez--utz

它是一种二进制表示形式,因此将其转换为可读格式需要您首先知道用于以这种格式对其进行编码的编码您想在哪里读取字符串?编码是关于表示的,如果你在终端中用
utf8
打印这个字符串,因为它是编码的,你很容易得到
acytnsocyiez--utz
@Ayush Shanker我怎么找到编码?我使用了类型(x),它给我@Kasramvd看起来不是utf8,因为acytnsocyiez--utz是不可理解的,python3中没有StringIO。是的:从io导入StringIO,但StringIO(s)。getvalue()提供与s相同的srting——在python3中不解码使用“从io导入StringIO”