On Saturday, 27 November 2021 at 13:56:46 UTC, Adam D Ruppe wrote:
On Saturday, 27 November 2021 at 13:54:11 UTC, Coder wrote:
My application is receiving data over a socket as immutable(ubyte)[]. How to validate them and transform them to utf8 string? What is the best way?

If they're already supposed to be utf8, just cast it to char[] then you can call std.utf.validate on it if you want and idup it into a string to keep.

If it is some other encoding... then it depends on what encoding.

Thank you Adam,

Question, why a function can not be nothrow if I catch in the body?

void foo() nothrow {
    import std.utf : validate, UTFException;
    try {
        validate("a");
    }
    catch(UTFException){
    }
}
Error: function `std.utf.validate!string.validate` is not `nothrow`
Error: `nothrow` function `foo` may throw

Reply via email to