它是一个“普通字符串”,在某种程度上,这样的东西存在。我不知道你期望什么样的输出,但是:
没有纯文本。
Python(无论如何在2.x中)str类型实际上是字节的容器,而不是字符的容器。所以它并不是真正的文本:)它以一种非常简单的编码方式显示字节,使用转义序列来表示每一个稍微“怪异”的字节。如果您print字符串(您现在看到的是在代码中创建这样一个文本字符串的语法),它的格式将再次不同。
在更简单的时候,我们天真地假设我们可以将字节映射到我们称之为“字符”的符号上,就这样。结果发现,人们想要使用的映射大约有无数种,其中许多映射需要的符号比一个字节所能表示的还要多。这就是我们现在有Unicode的原因:它代表任何真实世界语言(还有一些用于伪语言和其他目的)可能需要的每个符号,它抽象地为这些符号分配数字,但没有说明如何收集并将字节解释为数字。(这就是编码的目的)。
如果知道字符串数据是以特定方式编码的,则可以将其解码为Unicode字符串。它可以是实际Unicode数据的编码,也可以是其他格式(例如,日语文本经常出现在“Shift-JIS”中,因为它对它们的意义与“Latin-1”(ASCII的一个常见扩展)对我们的意义大致相同。无论哪种方式,您都可以得到一系列Unicode码位(在上一段中提到的数字)的内存表示。从所有的意图和目的来看,这确实是“文本”,但不是真正的“纯文本”:)
但是看起来你所拥有的数据实际上是一个二进制的字节块,如果被解释为ASCII的话,就会变成大部分的“可读文本”。
您真正需要做的是找出为什么第一个字节的值是4,下一个字节的值是8,并相应地继续。