Rust: コードポイントから文字を生成する
- Rust: コードポイントから文字を生成する
- Rust: 異体字セレクターを考慮して文字数を求める
- Rust: 異体字セレクターを考慮して部分文字列を取り出す
from_u32 を使う。
use std::char::from_u32;
fn main() {
println!("{}", from_u32(0x3042).unwrap());
}
Unicode で定義されるすべての文字を表示してみよう。
use std::char::from_u32;
fn main() {
for cp in range(0u32, 0x110000) {
if 0xD7FF < cp && cp < 0xE000 {
continue;
}
print!("U+");
if cp < 0x1000 {
let hex = format!("{:X}", cp);
print!("{}", "0".repeat(4 - hex.len()));
}
print!("{:X} ", cp);
print!("{} ", from_u32(cp).unwrap());
}
println!("");
}
逆に文字からコードポイントを求めてみよう。
fn main() {
let s = "あ";
println!("{:X}", s.char_at(0) as u32);
}
4桁と8桁の Unicode エスケープシーケンスが使える。
println!("\U00020BB7\u91CE\u5BB6");
文字から Unicode エスケープシーケンスを表示するには escape_unicode メソッドを使う。
fn main() {
let str = "あいうえお";
println!("{}", str.escape_unicode());
for c in str.chars() {
c.escape_unicode(|b| {
print!("{}", b);
});
print!(" ");
}
println!("");
}