将ubyte []转换为D

时间:2015-12-21 18:02:00

标签: encoding d

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

1 个答案:

答案 0 :(得分:2)

std.utf.validate

这样的事情?

import std.stdio;
import std.utf;

void main()
{
    ubyte[] bytes = cast(ubyte[])"собака";
    writeln("bytes: ", bytes);

    string str = cast(string)bytes;
    writeln("string: ", str);

    validate(str);

    writeln("valid");
}

应用程序输出:

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