用python读取的UTF-8文件将在字符\x85处换行

用python读取的UTF-8文件将在字符\x85处换行,python,file,readline,Python,File,Readline,我遇到了一个问题,我的歌曲播放列表在使用codecs.open(filename,encoding='utf8')读取时无法正确换行。播放列表文件中每两行的第一行包含元数据,第二行包含曲目文件名 文件名是unicode格式的,由于标记错误或字符集不匹配,我遇到了一些名称中包含\x85字符的曲目标题。因此会有一个元数据行,如'Title Title\x85 Title-artist,当使用readline读取文件时,会出现错误的换行。我解决了这个问题。我不需要调用file.readline,而是需

我遇到了一个问题,我的歌曲播放列表在使用
codecs.open(filename,encoding='utf8')
读取时无法正确换行。播放列表文件中每两行的第一行包含元数据,第二行包含曲目文件名


文件名是unicode格式的,由于标记错误或字符集不匹配,我遇到了一些名称中包含\x85字符的曲目标题。因此会有一个元数据行,如
'Title Title\x85 Title-artist
,当使用readline读取文件时,会出现错误的换行。

我解决了这个问题。我不需要调用
file.readline
,而是需要一个包装readline的函数。最初我一个字符接一个字符,速度很慢,但后来我忘记了readline过早中断,可以通过进一步调用构造成正确的行

def getline(_file):
    ln = ''
    while True:
        _ln = _file.readline()
        ln += _ln
        if not _ln:
            break;
        if _ln[-1] == '\n':
            break
    return ln

您是否检查过代码点为\x85的字符是什么?是的,它被标准视为换行符,但我知道事实上我处理的文件只需要相关的:Bug“codecs.open将空间解释为行尾”