String 有没有一种方法可以将D中的字符串转换成二进制

String 有没有一种方法可以将D中的字符串转换成二进制,string,d,String,D,我想将二进制数据写入一个文件以进行辅助哈希表操作,然后使用stream.rawRead()将其读回。如何将字符串转换为D中的二进制。如果可以的话,我宁愿不使用任何第三方库。内置模块具有转换utf编码的方法(utf8与ascii兼容) 如果要使用原始读取,应先写入字符串的长度,以便在读取时知道字符串的字节数。内置模块具有与utf编码转换的方法(utf8与ascii兼容) 如果要使用原始读取,应首先写入字符串的长度,以便在读取时知道字符串的字节数。旁注-如果字符串是ASCII,则非常简单: // f

我想将二进制数据写入一个文件以进行辅助哈希表操作,然后使用
stream.rawRead()
将其读回。如何将字符串转换为D中的二进制。如果可以的话,我宁愿不使用任何第三方库。

内置模块具有转换utf编码的方法(utf8与ascii兼容)

如果要使用原始读取,应先写入字符串的长度,以便在读取时知道字符串的字节数。

内置模块具有与utf编码转换的方法(utf8与ascii兼容)


如果要使用原始读取,应首先写入字符串的长度,以便在读取时知道字符串的字节数。

旁注-如果字符串是ASCII,则非常简单:

// following will not work:
// ubyte[] stringBytes = cast(ubyte[]) "Добар дан!".dup;

ubyte[] stringBytes = cast(ubyte[]) "Hello world".dup;
writeln(stringBytes);

char[] charr = cast(char[]) stringBytes;
writeln(charr);
string str = to!string(charr);
writeln(str);
输出:

[72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]
Hello world
Hello world

正如Ratched所指出的,您将需要某种unicode转换…

旁注-如果您的字符串是ASCII,则非常简单:

// following will not work:
// ubyte[] stringBytes = cast(ubyte[]) "Добар дан!".dup;

ubyte[] stringBytes = cast(ubyte[]) "Hello world".dup;
writeln(stringBytes);

char[] charr = cast(char[]) stringBytes;
writeln(charr);
string str = to!string(charr);
writeln(str);
输出:

[72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]
Hello world
Hello world

正如Ratched指出的,您将需要某种unicode转换…

另一个选项是
表示法:

导入标准stdio,标准字符串;
void main(){
auto s=“三月”;
自动a=s表示法;
a、 书面形式;/[77、97、114、99、104]
}

另一个选项是
表示法

导入标准stdio,标准字符串;
void main(){
auto s=“三月”;
自动a=s表示法;
a、 书面形式;/[77、97、114、99、104]
}

这就是我想要开始的东西。谢谢你这就是我想要的开始。谢谢哇,两个建议都很到位!!!非常感谢你们和ratchet freak。哇,两个建议都很到位!!!非常感谢你和棘轮怪。