| Crates.io | pinyin2ch |
| lib.rs | pinyin2ch |
| version | 0.1.1 |
| created_at | 2025-10-19 11:59:09.053466+00 |
| updated_at | 2025-10-19 12:13:23.456846+00 |
| description | A Rust library for converting Chinese Pinyin to Chinese characters with various levels of detail. |
| homepage | |
| repository | https://github.com/harkerhand/pinyin2ch |
| max_upload_size | |
| id | 1890353 |
| size | 115,682 |
这是一个将拼音(不带声调)映射到汉字的轻量 Rust 库,提供拼音合法性检查与拼音->汉字的查找。README 使用中文写成,包含功能说明、使用示例以及可选的字表分级特性说明(level1/level2/level3)。
Pinyin 类型,包含标准拼音音节列表与合法性检查(不带声调)。ChChar(汉字)类型,包含拼音与对应汉字字符串;支持从汉字推断拼音(依赖外部 pinyin crate)。get_map_level1 / get_map_level2 / get_map_level3,以及汇总函数 get_map(根据 Cargo features 合并对应级别字表)。src/tests.rs 中。在你的 Cargo.toml 中加入 pinyin2ch:
[dependencies]
pinyin2ch = "0.1"
use pinyin2ch::Pinyin;
use pinyin2ch::get_chars;
fn main() {
// 创建拼音(会检查合法性)
let p = Pinyin::new("ma").expect("ma 是合法拼音");
let chars = get_chars(&p);
// 输出候选汉字
for c in chars.iter() {
println!("{} -> {}", p.as_str(), c.as_ref());
}
}
如果你想直接从汉字创建 ChChar 并自动推断拼音(依赖 pinyin crate):
let ch = pinyin2ch::ch_char::ChChar::from("妈");
println!("{} -> {}", ch.pinyin.as_str(), ch.as_ref());
库源代码包含 3 个可选字表:level1、level2、level3:
level1:常用字表(默认推荐用于大多数场景)
level2:扩展生僻字表
level3:更偏生僻或古字
启用多级字表会在运行时 get_map() 合并对应级别的映射(后添加的 feature 会覆盖同一拼音键的条目)。
项目内已有单元测试,运行:
# 在仓库根目录运行
cargo test
注意:测试和某些功能依赖 pinyin 第三方 crate,用于从汉字推断拼音;请确保网络可用以获取依赖,或在离线环境中提前缓存依赖。
欢迎提交 issue 或 PR。代码采用 MIT 许可证,详见 LICENSE 文件。
src/map.rs 包含了大量静态映射数据(按级别分组),如果需要更高效的查找或序列化,可考虑将映射在构建时生成或使用按需加载机制。