如何去掉这个特殊字符?

15 投票
2 回答
33892 浏览
提问于 2025-04-16 22:03

我在尝试把文件中的行合并时,发现了以下内容:

word1 word2
word1 word2

我不明白为什么这些行没有被合并,所以我在vim中打开了文件,并使用了 :set list 来查看是否有特殊字符,结果我发现了这个:

 word1 <feff>word2
 word1 word2

我不太确定如何用Python来清理这个词。有没有什么建议,能告诉我这个字符可能是什么,以及如何清理它?

2 个回答

1

你试过用 mytext.split(string.whitespace) 吗?

32

U+FEFF是一个叫做字节顺序标记(Byte Order Mark)的字符,它应该只出现在文档的开头。在文档中,它应该被当作一个零宽非断行空格来处理。如果这个字符造成了问题,你可以像处理其他字符一样把它删除掉:

>>> s = u'word1 \ufeffword2'
>>> s = s.replace(u'\ufeff', '')
>>> s
u'word1 word2'

(在Python 3.1或3.2中,字符串前面的u可以去掉)

撰写回答