#日语 #Unicode #假名 #半角 #全角

程序+库 unicode-jp

一个库,用于将日文半角假名[半角カナ]和全角英数[全角英数;ZENKAKU EISU]转换为普通形式

4 个版本 (重大更新)

使用旧的 Rust 2015

0.4.0 2020年4月11日
0.3.0 2017年3月21日
0.2.0 2016年7月31日
0.1.0 2016年7月27日

#846 in 文本处理

Download history 165/week @ 2024-03-13 141/week @ 2024-03-20 250/week @ 2024-03-27 108/week @ 2024-04-03 111/week @ 2024-04-10 144/week @ 2024-04-17 107/week @ 2024-04-24 39/week @ 2024-05-01 347/week @ 2024-05-08 201/week @ 2024-05-15 184/week @ 2024-05-22 410/week @ 2024-05-29 320/week @ 2024-06-05 339/week @ 2024-06-12 312/week @ 2024-06-19 243/week @ 2024-06-26

1,271 每月下载量
7 库中使用 (4 个直接使用)

MIT 许可证

27KB
371

Unicode-JP (Rust)

Build Status crates.io MIT licensed

转换日文文本中包含的麻烦字符。

  • 半角假名[半角カナ;HANKAKU KANA] -> 正常片假名
  • 全角英数[全角英数;ZENKAKU EISU] <-> 正常 ASCII

如果需要包括日文在内的文本规范化,请首先考虑使用 unicode_normalization 库。NFD、NFKD、NFC 和 NFKC 可用。然而,如果处于如需要在限制性字符终端中对日文字符进行精细控制的细分市场,该库将与您协同工作。

日语有两种音节系统:平假名和片假名,半角假名是它们的另一种表示法。在这些系统中,有两种可组合的变音符号:声调符号和半声调符号。Unicode 为每个符号提供了三个独立的代码点。除此之外,我们经常在日文文本中使用特殊的风格拉丁字母和阿拉伯数字,称为全角英数。这个小工具将这些代码相互转换。

API 参考

示例

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) -> 字符串
    将所有分开的音标转换为空格+组合样式 "\u{20}\u{3099}"

  • nowidespace(&str) -> 字符串
    将全角空格转换为普通空格 [" " -> " "]

  • space2wide(&str) -> 字符串
    将普通空格转换为全角空格 [" " -> " "]

  • nowideyen(&str) -> 字符串
    将全角日元转换为半角日元 ["¥" -> "¥"]

  • yen2wide(&str) -> 字符串
    将半角日元转换为全角日元 ["¥" -> "¥"]

待办或非待办

  • 音标 -> 无空格组合样式 "\u{3099}"
  • 半角假名 <- 普通片假名
  • (普通/全角)波浪号 <-> 波浪线

依赖关系

~4.5MB
~86K SLoC