python3将不可读的字符转换为可读的字符

时间:2015-07-04 14:26:34

标签: python-3.x unicode decode type-conversion

嗨,我有一个文本文件,我正在读取文件和解析数据, 但我的文件包含一些文本,如

\u03a4\u03c1\u03b5\u03b9\u03c2 \u03bd\u03b5\u03ba\u03c1\u03bf\u03af \u03b1\u03c0\u03cc \u03c0\u03c4\u03ce\u03c3\u03b7 \u03bf\u03b2\u03af\u03b4\u03b1\u03c2 \u03c3\u03b5 \u03c3\u03c0\u03af\u03c4\u03b9 \u03c3\u03c4\u03bf \u03a3\u03b9\u03bd\u03ac 

我怎么能用python转换它的可读文本 我尝试使用这些代码来解决,但它没有工作

def encodeDecode(self, data):
    new_data = ''
    for ch in data:
        #let = ch.encode('utf-8').decode('utf-8')
        #new_data += let
        new_data += repr(ch)[1:2]
    return new_data

2 个答案:

答案 0 :(得分:0)

你的字符串没有问题,你有一个unicode数据。根据你想要如何使用它你可以解码它自定义或使用python默认编码,例如,如果你想打印它,因为python 3中的字符串是unicode你可以打印它。

>>> s="""\u03a4\u03c1\u03b5\u03b9\u03c2 \u03bd\u03b5\u03ba\u03c1\u03bf\u03af \u03b1\u03c0\u03cc \u03c0\u03c4\u03ce\u03c3\u03b7 \u03bf\u03b2\u03af\u03b4\u03b1\u03c2 \u03c3\u03b5 \u03c3\u03c0\u03af\u03c4\u03b9 \u03c3\u03c4\u03bf \u03a3\u03b9\u03bd\u03ac """
>>> 
>>> print s
Τρεις νεκροί από πτώση οβίδας σε σπίτι στο Σινά 
>>> 

但是如果你想在文件中写入数据,则需要对文件使用适当的编码。

当您打开要写入的文件时,可以将编码传递给open()函数。

答案 1 :(得分:-1)

你也可以使用Python的json模块转换它 - 这也适用于Python 2x

>>> f = open('input.txt', 'r')
>>> json_str = '"%s"' % f.read().replace('"', '\\"') # wrap the input string in double quotes
>>> print(json.loads(json_str))
Τρεις νεκροί από πτώση οβίδας σε σπίτι στο Σινά