РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
211 of 1245 menu

Метод to_string_lossy

Метод to_string_lossy преобразует значение типа OsStr в строку типа Cow<str>. Если данные содержат корректные Unicode-последовательности, возвращается заимствованная строка без выделения памяти. Если же встречаются некорректные байты, они заменяются на символ замены U+FFFD, и возвращается владеющая строка. Метод не принимает параметров.

Синтаксис

os_str.to_string_lossy()

Пример

Давайте преобразуем корректный OsStr в строку:

use std::ffi::OsStr; fn main() { let os_str = OsStr::new("abcde"); let res = os_str.to_string_lossy(); println!("{}", res); }

Результат выполнения кода:

"abcde"

Пример

Давайте преобразуем OsStr с некорректными байтами в строку:

use std::ffi::OsStr; use std::os::unix::ffi::OsStrExt; fn main() { let bytes = [0x66, 0x6f, 0x80, 0x6f]; let os_str = OsStr::from_bytes(&bytes); let res = os_str.to_string_lossy(); println!("{}", res); }

Результат выполнения кода:

"fo\u{FFFD}o"

Пример

Давайте проверим, возвращает ли метод заимствованную строку для корректного Unicode:

use std::ffi::OsStr; use std::borrow::Cow; fn main() { let os_str = OsStr::new("12345"); let res = os_str.to_string_lossy(); let is_borrowed = matches!(res, Cow::Borrowed(_)); println!("{}", is_borrowed); }

Результат выполнения кода:

true

Смотрите также

  • метод to_str,
    который пытается преобразовать OsStr в &str без потерь
  • метод from_utf8_lossy,
    который преобразует байты в строку с заменой некорректных последовательностей
  • метод from_utf8,
    который проверяет корректность UTF-8 при создании строки
  • класс OsStr,
    который представляет заимствованную строку операционной системы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить