Тип char
может быть приведен к u32
с использованием as
.В строке
println!("{:x}", 'の' as u32);
будет напечатано «306e» (используя {:x}
для форматирования числа в шестнадцатеричном формате).
Если вы уверены, что все ваши символы находятся в BMP , теоретически вы также можете привести непосредственно к u16
.Для персонажей из дополнительных плоскостей это будет молча давать неправильные результаты, хотя, например, '?' as u16
возвращает 0xf756
вместо правильного 0x1f756
, поэтому вам нужна веская причина для этого.
Внутренне, char
хранится как 32-разрядное число, поэтому c as u32
для некоторого символа c
только интерпретирует представление символа в памяти как u32
.