13个版本
使用旧的Rust 2015
0.3.0 | 2016年12月26日 |
---|---|
0.2.0 | 2015年7月2日 |
0.1.10 | 2015年7月1日 |
0.1.9 | 2015年4月14日 |
0.1.7 | 2015年3月27日 |
1758 在 文本处理 中
273,934 每月下载量
用于 72 个包 (28 个直接使用)
2MB
66K SLoC
rust-unidecode
rust-unidecode
库是Sean M. Burke著名的Perl模块 Text::Unidecode
的Rust移植版本。它将如“Æneid”这样的Unicode字符串转写为纯ASCII字符串,如“AEneid”。关于使用此类库的理由的详细解释,您可以参考原始模块的文档以及Burke于2001年撰写的这篇文章。
用于将Unicode转换为的数据库直接从Text::Unidecode
模块使用Perl脚本移植过来,因此 rust-unidecode
应该产生相同的输出。
示例
extern crate unidecode;
use unidecode::unidecode;
assert_eq!(unidecode("Æneid"), "AEneid");
assert_eq!(unidecode("étude"), "etude");
assert_eq!(unidecode("北亰"), "Bei Jing");
assert_eq!(unidecode("ᔕᓇᓇ"), "shanana");
assert_eq!(unidecode("げんまい茶"), "genmaiCha ");
保证和警告
当调用 unidecode()
- 返回的
String
将是有效的ASCII;字符串中每个char
的十进制表示将在0到127之间(含)。 - 每个ASCII字符(0x0000 - 0x007F)都映射到自身。
- 所有Unicode字符都将转换为包含换行符(
"\n"
)或0x0020 - 0x007E范围内的ASCII字符的字符串。例如,没有Unicode字符会转换为\u{01}
。例外情况是如果传递的是ASCII字符本身,则它将被映射到自身。(因此'\u{01}'
将被映射到"\u{01}"
。)
然而,有一些事情您应该记住
- 如前所述,一些转写会产生
\n
字符。 - 一些Unicode字符转写为空字符串,或者是有意为之,或者是因为
rust-unidecode
不了解该字符。 - 一些Unicode字符未知,转写为
"[?]"
。 - 许多Unicode字符转写为多字符字符串。例如,北转写为 "Bei "。
此信息摘自原始 Text::Unidecode
文档。