有哪些C/C++库用于检测字符数组(char*
)的多字节字符编码(UTF-8,UTF-16等)。奖金也可以检测匹配器何时停止,即检测到前缀给定的一组可能编码的匹配范围。检测多字节字符编码
2
A
回答
5
ICU确实character set detection。您必须注意,正如ICU文档所述:
这最多是一个使用统计和 启发式的不精确操作。正因为如此,如果您提供至少几百字节的字符数据(主要是单一的 语言),则检测效果最佳。
+0
很好 - 我不知道。但正如我所说,它一定是一种启发式。 +1 –
2
如果输入只是ASCII,那么就没有办法检测流中是否存在任何高位集字节,应该怎么研究。也可以在这种情况下选择UTF-8。
至于UTF-8与ISO-8859-x,你可以尝试解析输入为UTF-8,如果解析失败,可以回退到ISO-8859,但就是这样。有没有真正的方法来检测哪个 ISO-8859变种在那里。我建议看看Firefox试图自动检测的方式,但这不是万无一失的,可能取决于知道输入是HTML。
1
一般情况下,除非文本中有一些表示编码的特殊标记,否则不可能检测到字符编码。您可以启发式地检测使用字典的编码,该字典包含仅在某些编码中存在的字符。
这当然只能是启发式的,你需要扫描整个文本。
示例:“英文文本可以用多种编码书写”。这句话可以写成例如使用德语代码页。除非添加一些ASCII中不存在的特殊字符(如ä),否则它与大多数“西方”编码(包括UTF-8)无法区分。
相关问题
- 1. Python检测字符串字节编码
- 2. php可以检测4字节编码的utf8字符吗?
- 3. 检测字节数组C的编码#
- 4. 限制URL编码字符串在.NET多字节字符
- 5. 红宝石1.9.2字符编码:无效的多字节字符:/?/
- 6. Android的Base64编码字符串检测
- 7. 字符编码检测算法
- 8. 如何检测字符集编码?
- 9. 如何检测Windows-1251编码字符
- 10. Java:检测给定字符编码的不可显示字符
- 11. 为亚洲双字节/西里尔字符集检测ASCII码?
- 12. 在rtf标记中检测多字节和中文字符
- 13. 如何在WinAPI中检测不完整的多字节字符?
- 14. 编码字符串字节在Python
- 15. python3字节字符串编码
- 16. 网址编码字节字符串?
- 17. C#字符/字节编码平等
- 18. QR码与多字节字符
- 19. base64编码能应用于多字节utf-8字符吗?
- 20. C++中的多字节字符串的URL编码
- 21. UTF-8编码字符的最大字节数是多少?
- 22. Javascript编码中断和组合多字节字符?
- 23. 本地java字节码检测
- 24. M2Crypto RSA Unicode字符串编码不同于字节字符串
- 25. 在Windows Phone上检测流或字节数组编码
- 26. 编码行字节
- 27. 编码为字节
- 28. 在多字节noop中编码数据?
- 29. 从多字节编码转换为Unicode
- 30. java中的多字节编码
没有ASCII,只有UTF-8 :-) – paxdiablo