Функция from_utf8_unchecked
Функция from_utf8_unchecked создает новую строку
типа String из вектора байтов
(Vec<u8>) без проверки того, является ли
последовательность байтов корректной строкой UTF-8.
Параметром функция принимает вектор байтов, который
нужно преобразовать в строку.
Эта функция является небезопасной (unsafe),
поскольку при передаче некорректных данных поведение
программы становится неопределенным. Используйте её
только тогда, когда вы абсолютно уверены, что байты
образуют корректную строку UTF-8.
Синтаксис
unsafe { String::from_utf8_unchecked(vec) }
Пример
Давайте создадим строку из вектора байтов, которые являются корректной последовательностью UTF-8:
fn main()
{
let bytes = vec![97, 98, 99, 100, 101];
let res = unsafe { String::from_utf8_unchecked(bytes) };
println!("{}", res);
}
Результат выполнения кода:
"abcde"
Пример
Давайте создадим строку из вектора байтов, которые являются корректной последовательностью UTF-8 для кириллицы:
fn main()
{
let bytes = vec![208, 159, 209, 128, 208, 184, 208, 178, 208, 181, 209, 130];
let res = unsafe { String::from_utf8_unchecked(bytes) };
println!("{}", res);
}
Результат выполнения кода:
"Привет"
Пример
Давайте создадим строку из пустого вектора байтов:
fn main()
{
let bytes: Vec<u8> = vec![];
let res = unsafe { String::from_utf8_unchecked(bytes) };
println!("{:?}", res);
}
Результат выполнения кода:
""
Смотрите также
-
функция
from_utf8,
которая создает строку из байтов с проверкой UTF-8 -
функция
from_utf8_lossy,
которая создает строку из байтов, заменяя некорректные символы -
метод
into_bytes,
который преобразует строку в вектор байтов -
класс
String,
который представляет собой строку в Rust