6个版本 (稳定版)
使用旧的Rust 2015
2.2.0 | 2022年1月26日 |
---|---|
2.1.0 | 2020年1月29日 |
2.0.0 | 2016年10月9日 |
1.0.1 | 2016年10月9日 |
0.1.0 | 2015年8月31日 |
#1114 在 文本处理
每月下载 68 次
在 3 个crate 中使用
14KB
194 行
xhtmlchardet
Rust中XML和HTML的基本字符集检测。
最低支持的Rust版本 1.24.0
示例
use std::io::Cursor;
extern crate xhtmlchardet;
let text = b"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><channel><title>Example</title></channel>";
let mut text_cursor = Cursor::new(text.to_vec());
let detected_charsets: Vec<String> = xhtmlchardet::detect(&mut text_cursor, None).unwrap();
assert_eq!(detected_charsets, vec!["iso-8859-1".to_string()]);
理由
我编写了一个需要确定获取的内容字符集的Feed爬虫,以便将其转换为UTF-8。最初我使用了uchardet crate,但在某些情况下它错误地检测了字符集。我将所有这些边缘情况收集在一起并构建了一个测试套件。然后我实现了这个crate,它通过了所有这些测试。它使用了一种相当简单的方法,该方法来源于XML规范的第F节。