>>toUTFz converts to a zero-terminated UTF string, and that's what it returns.
>Actually, no, that's not what it returns. That's the point I'm making.

Wait, then I'm missing something. Doesn't it return a pointer to the beginning of the converter string?

>>Isn't it obvious that all improvements you propose end up worse?
>:/

What I see is that you take the expression in the return statement and sprinkle it in all caller code.