Функция from_utf8_unchecked
Функция from_utf8_unchecked преобразует
срез байтов в строковое представление
&str без проверки того, что байты
являются корректной последовательностью UTF-8.
Параметром функция принимает срез байтов
&[u8], который нужно преобразовать в строку.
Эта функция является небезопасной
(unsafe), так как при передаче
некорректных байтов поведение программы
становится неопределённым. Используйте её
только тогда, когда вы уверены в корректности
входных данных.
Синтаксис
unsafe { std::str::from_utf8_unchecked(bytes) }
Пример
Давайте преобразуем корректную последовательность байтов в строку:
fn main()
{
let bytes: &[u8] = b"abcde";
let res = unsafe { std::str::from_utf8_unchecked(bytes) };
println!("{}", res);
}
Результат выполнения кода:
"abcde"
Пример
Давайте преобразуем байты, содержащие русские буквы в кодировке UTF-8:
fn main()
{
let bytes: &[u8] = "привет".as_bytes();
let res = unsafe { std::str::from_utf8_unchecked(bytes) };
println!("{}", res);
}
Результат выполнения кода:
"привет"
Пример
Давайте получим длину строки, созданной из байтов без проверки:
fn main()
{
let bytes: &[u8] = b"12345";
let res = unsafe { std::str::from_utf8_unchecked(bytes) };
println!("{}", res.len());
}
Результат выполнения кода:
5