当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust CStr.to_string_lossy用法及代码示例


本文简要介绍rust语言中 std::ffi::CStr.to_string_lossy 的用法。

用法

pub fn to_string_lossy(&self) -> Cow<'_, str>

CStr 转换为 Cow<str>

如果 CStr 的内容是有效的 UTF-8 数据,则此函数将返回带有相应 &str 切片的 Cow::Borrowed(&str)。否则,它将用 U+FFFD REPLACEMENT CHARACTER 替换任何无效的UTF-8 序列,并返回带有结果的Cow::Owned(&str)

例子

在包含有效 UTF-8 的 CStr 上调用 to_string_lossy

use std::borrow::Cow;
use std::ffi::CStr;

let cstr = CStr::from_bytes_with_nul(b"Hello World\0")
                 .expect("CStr::from_bytes_with_nul failed");
assert_eq!(cstr.to_string_lossy(), Cow::Borrowed("Hello World"));

在包含无效 UTF-8 的 CStr 上调用 to_string_lossy

use std::borrow::Cow;
use std::ffi::CStr;

let cstr = CStr::from_bytes_with_nul(b"Hello \xF0\x90\x80World\0")
                 .expect("CStr::from_bytes_with_nul failed");
assert_eq!(
    cstr.to_string_lossy(),
    Cow::Owned(String::from("Hello �World")) as Cow<'_, str>
);

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::ffi::CStr.to_string_lossy。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。