Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.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
Python-解码从输入文件读取的文本_Python_Decode_Codec_Normalize - Fatal编程技术网

Python-解码从输入文件读取的文本

Python-解码从输入文件读取的文本,python,decode,codec,normalize,Python,Decode,Codec,Normalize,很抱歉,如果其他地方已回答此问题,但我无法找到解决我的问题的方法 我正在从卫星接收器读取一个包含服务引用和名称的文件。我正在尝试规范化服务名称,但问题是该文件可能包含来自许多不同卫星和许多不同语言的数据 我用这个代码处理了好几个爱尔兰名字,把RTÉOne改为RTE One等等 name = unicodedata.normalize('NFKD', unicode(name, 'utf_8')).encode('ASCII', 'ignore') 名称从输入文件中读取,如下所示: RTÉ O

很抱歉,如果其他地方已回答此问题,但我无法找到解决我的问题的方法

我正在从卫星接收器读取一个包含服务引用和名称的文件。我正在尝试规范化服务名称,但问题是该文件可能包含来自许多不同卫星和许多不同语言的数据

我用这个代码处理了好几个爱尔兰名字,把RTÉOne改为RTE One等等

name = unicodedata.normalize('NFKD', unicode(name, 'utf_8')).encode('ASCII', 'ignore')
名称从输入文件中读取,如下所示:

RTÉ One
ΉπειÏος TV1
这一切都很好,但后来我遇到了这样一个服务名称:

RTÉ One
ΉπειÏος TV1
它不能处理上面的编解码器,它显然不是utf_8

我试图将上述代码更改为:

name = unicodedata.normalize('NFKD', force_decode(name)).encode('ASCII', 'ignore')
其中force_decode是一个函数,如下所示:

def force_decode(string, codecs=['latin_1', 'cp857', 'cp866', 'cp1252', 'cp855', 'iso8859_5', 'iso8859_9', 'utf_8']):
for i in codecs:
    try:
        return string.decode(i)
    except (Exception) as exception:
        print "Error decoding name!! ", exception
        pass

print "cannot decode url %s" % ([string])
现在发生的事情是,上面的内容只是TV1。我想知道我是否能破译任何东西

有人知道这是否可能吗


提前感谢。

这是一个噩梦般的问题。如果你真的没有办法知道编码方式,而编码方式又是任意的和不断变化的,那么当你猜错的时候就会出错。没办法。我希望那不是答案,哈哈。。谢谢你的回复,我可能需要想一个不同的方法!