【发布时间】:2011-08-19 14:05:36
【问题描述】:
我有一个文件,每行包含一个短语/术语,我从 STDIN 读取到 perl。我有一个停用词列表(如“á”、“são”、“é”),我想将它们中的每一个与每个术语进行比较,如果它们相等则删除。问题是我不确定文件的编码格式。
我从file 命令得到这个:
words.txt: Non-ISO extended-ASCII English text
我的 linux 终端是 UTF-8 格式的,它显示了一些单词的正确内容,而另一些则没有。以下是其中一些的输出:
condi<E3>
conte<FA>dos
ajuda, mas não resolve
mo<E7>ambique
pedagógico são fenómenos
您可以看到,第 3 行和第 5 行正确识别带有重音符号和特殊字符的单词,而其他行则没有。其他行的正确输出应该是:condiã、conteúdos 和 moçambique。
如果我使用binmode(STDOUT, utf8),“不正确”行现在可以正确输出,而其他行则不能。例如第 3 行:
ajuda, mas não resolve
我该怎么办?
【问题讨论】:
标签: perl unicode character-encoding