Метод encode_utf16
Метод encode_utf16 возвращает итератор,
который выдаёт 16-битные кодовые единицы
UTF-16 для данной строки. Метод не принимает
параметров. Каждый символ строки преобразуется
в одну или две кодовые единицы u16
в зависимости от его кодовой позиции в Unicode.
Синтаксис
str.encode_utf16()
Пример
Давайте закодируем строку "abcde"
в последовательность кодовых единиц UTF-16
и выведем их:
fn main()
{
let res: Vec<u16> = "abcde".encode_utf16().collect();
println!("{:?}", res);
}
Результат выполнения кода:
[97, 98, 99, 100, 101]
Пример
Давайте закодируем строку с символом вне базовой многоязычной плоскости, например эмодзи, и посмотрим, сколько кодовых единиц он занимает:
fn main()
{
let res: Vec<u16> = "😀".encode_utf16().collect();
println!("{:?}", res);
println!("{}", res.len());
}
Результат выполнения кода:
[55357, 56832]
2
Пример
Давайте посчитаем количество кодовых единиц
UTF-16 для строки "12345" с помощью
метода count:
fn main()
{
let res = "12345".encode_utf16().count();
println!("{}", res);
}
Результат выполнения кода:
5