俄文文件中出现错误的西里尔字符 - 无法正确解码/编码

0 投票
1 回答
3387 浏览
提问于 2025-04-18 05:33

我最近在处理编码问题,正在用Python和sqlite3建立一个多语言数据库。到目前为止,除了这个文件之外,我的问题都解决了,都是靠谷歌和Stack Overflow上的文章帮忙的。

我之前遇到过俄语、斯洛文尼亚语、波兰语、西班牙语和法语的问题,但现在都解决了,只有这个文件让我头疼。我在一个网站上找到了可能的解决办法:http://www.smashingmagazine.com/2012/06/06/all-about-unicode-utf8-character-sets/,还找到一个解码器,离解决问题很近,但它只让我看到部分能理解的俄语...(不过我相信它在其他情况下会有帮助:http://2cyr.com/decode/?lang=fr,这个网站也有英文版)。

不过这个文件真让我抓狂。主要问题是:我知道它是俄语,因为给我这个文件的语言学家确认了这一点,但文件本身看起来是这样的:

£ËÁÀÝÅÅ UNK £ËÁÀÝÉÊ UNKA
£ËÁÀÝÅÇÏ    UNK £ËÁÀÝÉÊ UNKA
£ËÁÀÝÅÊ UNK £ËÁÀÝÉÊ UNKA
£ËÁÀÝÅÍ UNK £ËÁÀÝÉÊ UNKA
£ËÁÀÝÅÍÕ    UNK £ËÁÀÝÉÊ UNKA

根据我的终端,它是用utf-8编码的。因此,我一直在尝试解码utf-8,然后把它编码成我能找到的所有俄语编码(ISO-8859-5、koi8_r、koi8_u、cp1252、cp1251...)。但从来没有成功。我还尝试过用这些编码保存文件,然后反向解码,但也没什么效果...

这个文件必须放进数据库(sqlite),而我知道这个数据库需要用utf-8编码。之前我处理的俄语文件是“正确”写的(用西里尔字母),我只需要找出该用什么编码。但现在我感觉我试过所有方法,结果就是没有任何进展...

我其实在想,解码这样的文件是否可能,因为它一开始就不是用西里尔字母写的。

任何建议都欢迎哦 :)

1 个回答

0

首先最重要的问题是 - 这个文本不是用UTF-8编码的,而是用KOI8R编码的。
所以如果你想用Python来解码,可以参考这个回答 - 字符串编码/解码 - 这可能会给你一些提示。

我已经解码了你指定的文本 - 希望你喜欢:

ёкающее UNK ёкающий UNKA
ёкающего    UNK ёкающий UNKA
ёкающей UNK ёкающий UNKA
ёкающем UNK ёкающий UNKA
ёкающему    UNK ёкающий UNKA

撰写回答