Python编码问题?
我需要测试某个字符串(例如“võiks”)是否等于目录中包含的任何文件的名称Python编码问题?,python,Python,我需要测试某个字符串(例如“võiks”)是否等于目录中包含的任何文件的名称 >>>words = [ f.replace('.html', '') for f in listdir('lemma_pages/test') if isfile(join('lemma_pages/test',f)) ] >>>words ['võibolla', 'võid', 'võiks', 'võimalik', 'võin', 'võta', 'võtan', 'võ
>>>words = [ f.replace('.html', '') for f in listdir('lemma_pages/test') if isfile(join('lemma_pages/test',f)) ]
>>>words
['võibolla', 'võid', 'võiks', 'võimalik', 'võin', 'võta', 'võtan', 'võtta']
>>>'võiks' in words
False
但是当我测试它的时候,当我预料不到的时候,我就错了。我以这种方式打开包含以下文字的文件:
open('et_500.txt', 'rt', encoding="utf-8")
知道我做得不对吗?数据可能没有标准化。在比较字符串之前,请使用以下命令进行规格化:
data = unicodedata.normalize('NFC', data)
为了提供更多细节,
õ
可以是,也可以后面跟着。标准化是必要的,这样无论你得到哪种口味,它们都会进行相同的比较。你在哪个平台上?如果这是在Mac上,请查看终端中的sys.getdefaultencoding()
的结果?