Функция from_utf8
Функция from_utf8 преобразует срез байтов
в строку &str, проверяя, что байты
представляют корректную последовательность UTF-8.
Параметром функция принимает срез байтов,
который нужно преобразовать. Функция возвращает
Result: при успехе - строку &str,
при ошибке - ошибку Utf8Error, содержащую
позицию первого некорректного байта.
Синтаксис
str::from_utf8(bytes)
Пример
Давайте преобразуем корректный срез байтов
b"abcde" в строку:
fn main()
{
let bytes = b"abcde";
let res = str::from_utf8(bytes);
println!("{:?}", res);
}
Результат выполнения кода:
Ok("abcde")
Пример
Давайте попробуем преобразовать срез с некорректным UTF-8:
fn main()
{
let bytes = &[0xFF, 0xFE, 0xFD];
let res = str::from_utf8(bytes);
println!("{:?}", res);
}
Результат выполнения кода:
Err(Utf8Error { valid_up_to: 0, error_len: Some(1) })
Пример
Давайте используем from_utf8 для проверки
байтов перед созданием строки:
fn main()
{
let bytes = b"12345";
match str::from_utf8(bytes)
{
Ok(s) => println!("Valid string: {}", s),
Err(e) => println!("Error: {}", e),
}
}
Результат выполнения кода:
Valid string: 12345
Смотрите также
-
метод
from_utf8,
который преобразует байты в строку с проверкой UTF-8 -
метод
from_utf8_unchecked,
который преобразует байты в строку без проверки -
метод
as_bytes,
который возвращает строку как срез байтов -
метод
len,
который возвращает длину строки в байтах