2 个版本
0.4.1 | 2024 年 3 月 11 日 |
---|---|
0.4.0 | 2024 年 3 月 11 日 |
#797 in 文本处理
在 minidisc 中使用
24KB
318 行
临时库
此库存在是因为 https://github.com/gemmarx/unicode-jp-rs 已经不再活跃,并且需要更新。请与我联系,如果需要,我将从crates.io撤销我的版本。
Unicode-JP (Rust)
包括日本文本中的麻烦字符的转换器。
- 半角假名[半角カナ;HANKAKU KANA] -> 正常片假名
- 全角英数[全角英数;ZENKAKU EISU] <-> 正常ASCII
如果您需要包含日语的文本规范化,请首先考虑使用 unicode_normalization 库。可以使用 NFD、NFKD、NFC 和 NFKC。但是,如果您的需求是在受限制的字符终端中对日语字符进行精细控制等细分领域,则此库与您配合使用。
日语有两种音节体系:平假名和片假名,半角假名是它们的另一种表示法。在这些体系中,有两个可组合的变音符号:浊音符号和半浊音符号。Unicode为每个符号提供了三个独立的码点。除此之外,我们在日本文本中经常使用特殊的样式拉丁字母和阿拉伯数字,称为全角英数。这个小工具将这些代码相互转换。
示例
Cargo.toml
[dependencies]
unicode-jp = "0.4.0"
src/main.rs
extern crate kana;
use kana::*;
fn main() {
let s1 = "マツオ バショウ ア゚";
assert_eq!("マツオ バショウ ア ゚", half2kana(s1));
assert_eq!("マツオ バショウ ア゚", half2full(s1));
let s2 = "ひ゜ひ゛んは゛";
assert_eq!("ぴびんば", combine(s2));
assert_eq!("ひ ゚ひ ゙んは ゙", vsmark2combi(s2));
let s3 = "#&Rust-1.6!";
assert_eq!("#&Rust-1.6!", wide2ascii(s3));
}
kana 库的功能
-
wide2ascii(&str) -> String
将全角英数转换为正常ASCII [A -> A] -
ascii2wide(&str) -> String
将正常ASCII字符转换为全角英数 [A -> A] -
half2full(&str) -> String
将半角假名转换为带有分离变音符号的正常片假名 [ア゙パ -> ア゙パ]
此方法简单,但在渲染时可能会引起问题。在这种情况下,请使用 half2kana() 或执行 vsmark2{full|half|combi} 作为后处理。 -
half2kana(&str) -> String
将半角假名转换为带有组合变音符号的正常片假名 [ア゙パ -> ア゙パ] -
combine(&str) -> String
combine(&str) -> String -
hira2kata(&str) -> String
将平假名转换为片假名 [あ -> ア] -
kata2hira(&str) -> String
将片假名转换为平假名 [ア -> あ] -
vsmark2full(&str) -> String
将所有分离的浊音符号转换为全角样式 "\u{309B}" -
vsmark2half(&str) -> String
将所有分离的浊音符号转换为半角样式 "\u{FF9E}" -
vsmark2combi(&str) -> String
将所有分开的音标转换为空格+组合样式 "\u{20}\u{3099}" -
nowidespace(&str) -> String
将全角空格转换为普通空格 [" " -> " "] -
space2wide(&str) -> String
将普通空格转换为全角空格 [" " -> " "] -
nowideyen(&str) -> String
将全角日元转换为半角日元 ["¥" -> "¥"] -
yen2wide(&str) -> String
将半角日元转换为全角日元 ["¥" -> "¥"]
待办或无需待办
- 音标 -> 无空格组合样式 "\u{3099}"
- 半角假名 <- 普通片假名
- (普通/全角)波浪线 <-> 波浪线
依赖
~2.2–3MB
~53K SLoC