Encoding 将ubyte[]转换为D中的字符串

Encoding 将ubyte[]转换为D中的字符串,encoding,d,Encoding,D,我从不受信任的源接收到一个ubyte[],需要将其转换为utf-8编码字符串。如何转换它并检查给定的字节是否为有效的utf-8数据? phobos中似乎没有直接执行此操作的函数(即获取一个ubyte[]或一个ubyte范围并将其转换为一个字符串或一个字符范围)。 像这样的 导入标准stdio; 进口标准utf; void main() { ubyte[]字节=cast(ubyte[])“баааа”; writeln(“字节:”,字节); string str=转换(字符串)字节; writel

我从不受信任的源接收到一个ubyte[],需要将其转换为utf-8编码字符串。如何转换它并检查给定的字节是否为有效的utf-8数据? phobos中似乎没有直接执行此操作的函数(即获取一个ubyte[]或一个ubyte范围并将其转换为一个字符串或一个字符范围)。

像这样的

导入标准stdio;
进口标准utf;
void main()
{
ubyte[]字节=cast(ubyte[])“баааа”;
writeln(“字节:”,字节);
string str=转换(字符串)字节;
writeln(“字符串:”,str);
验证(str);
书面形式(“有效”);
}
应用程序输出:

bytes: [209, 129, 208, 190, 208, 177, 208, 176, 208, 186, 208, 176]
string: собака
valid