我需要使用文本,比较单词和字典等单词......我遇到编码问题。 txt文件是utf-8,代码也是utf-8。问题是当分裂为具有š,č,ť,á等字符的单词时...我试图在网上编码和解码并搜索但我不知道如何处理它。我查看了filesystemencoding,它是mbcs,defaultencoding是utf-8。你能帮助我吗?以下代码是第一版。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
f = open("text.txt", "r+")
text = f.read()
sentences = re.split("[.!?]\s", text)
words = re.split("\s", sentences[0])
print sentences[0]
print words
结果是:
Nexus 5 patrí v sučasnosti medzi a najlepšie aj smartfóny
['\xef\xbb\xbfNexus', '5', 'patr\xc3\xad', 'su\xc4\x8dasnosti', 'medzi', 'najlep\xc5\xa1ie', 'smartf\xc3\xb3ny']
当我使用时:
f = codecs.open("text.txt", "r+", encoding="utf-8")
结果是:
Nexus 5 patrí v sučasnosti medzi a najlepšie aj smartfóny
[u'\ufeffNexus', u'5', u'patr\xed', u'su\u010dasnosti', u'medzi', u'najlep\u0161ie', u'smartf\xf3ny']
我需要输出:
['Nexus', '5', 'patrí', 'v', 'súčastnosti',....]
答案 0 :(得分:1)
编码处理是正确的,u'patr\xed'
只是Python中unicode字符串的表示。在shell中尝试print u'patr\xed'
以便自己查看。
话虽如此,由于您似乎想将其用作字典,因此使用unidecode模块将unicode字符串规范化为ASCII可能很有用。