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文本处理

Download history 17925/week @ 2024-02-27 20124/week @ 2024-03-05 19541/week @ 2024-03-12 17662/week @ 2024-03-19 15134/week @ 2024-03-26 18958/week @ 2024-04-02 18604/week @ 2024-04-09 24215/week @ 2024-04-16 30367/week @ 2024-04-23 45185/week @ 2024-04-30 46011/week @ 2024-05-07 51673/week @ 2024-05-14 66971/week @ 2024-05-21 72924/week @ 2024-05-28 68578/week @ 2024-06-04 55136/week @ 2024-06-11

273,934 每月下载量
用于 72 个包 (28 个直接使用)

BSD-3-Clause

2MB
66K SLoC

rust-unidecode

Build Status Cargo version License

文档

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 文档。

无运行时依赖