【发布时间】:2020-03-28 17:32:15
【问题描述】:
使用String,我们有.chars() 方法来检索对该变量字符的迭代器。
我怎样才能用OsString 做同样的事情?例如
use std::vec::Vec;
use std::ffi::OsString;
pub fn ostring_to_chars(string: OsString) {
string.chars().collect::<Vec<OsString>>();
}
【问题讨论】:
-
字符,你的意思是字节吗?对于字符,你需要知道编码是什么。
-
不,字符。基本上,我正在处理的文件是一个伪二进制文件,其中包含许多以字符形式存储的整数。其中一些高于 255 值,这意味着它们存储在一个以上的字节中,而其余的只有 1 个字节的长度。我不想弄清楚哪个字节属于哪个整数,如果我使用
&[u8]而不是OsString,我必须这样做。 -
Ry:刚才看到你编辑了评论。您认为将其作为字节数组处理会更好吗?因为这个文件主要是 UTF-8 除了对于可能是也可能不是有效的 Unicode 的各种元数据。
-
是的,听起来确实更好。
-
好的,也许我会尝试使用固定数据类型 (u16) 而不是两个(u8 和 u16),因此每个整数将存储在两个字节中。