如何检测字符缓冲区的编码?

4

有没有免费的开源库可以自动检测任意 char* 缓冲区的编码?

例如,在 Python 中有一个名为 chardet 的模块,可以完成同样的工作。

非常感谢您的帮助。


我想,除非char* buffer有某种头信息,否则很难说。有趣... - जलजनक
@SparKot 是的,这很困难,但 Python 中有一个叫做 chardet 的模块,可以在某种程度上完成这项工作。 - Pupkov-Zadnij
1
该库称其为“猜测”。显然,它需要每种类型的编码信息集才能进行猜测。如果您知道如何表示每种类型的编码字符串,则分析另一个部分值不会太难。请查看贝叶斯网络或概率搜索。 - Aniket Inge
2
尝试使用enca - Piotr Praszmo
最好的情况下只能猜测。在某些情况下,猜测可能相当准确,而在其他情况下则不是。 - Hot Licks
1个回答

1
如果存在字节顺序标记,则可以使用必须位于流的开头的特定序列来查找所使用的编码。

是的,这是真的,但它不适用于8位编码,如cp1251 :( - Pupkov-Zadnij
1
据我所知,C语言中没有相关的库,但是Perl有一个名为Encode-Detect的库。也许可以研究一下它们的实现方式。 - P.P

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接