有哪些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