On Sunday, 9 March 2014 at 21:14:30 UTC, Nick Sabalausky wrote:
With all due respect, D string type is exclusively for UTF-8
strings.
If it is not valid UTF-8, it should never had been a D string
in the
first place. In the other cases, ubyte[] is there.
This is an arbitrary self-imposed limitation caused by the
choice in how
strings are handled in Phobos.
Yea, I've had problems before - completely unnecessary problems
that were *not* helpful or indicative of latent bugs - which
were a direct result of Phobos being overly pedantic and eager
about UTF validation. And yet the implicit UTF validation has
never actually *helped* me in any way.
self-imposed limitation
For greater good.
I finds this article very telling about why string should be
converted to UTF-8 as often as possible.
http://www.utf8everywhere.org/
I agree 100% with its content, it's impossibly hard to have a
sane handling of encodings on WIndows (even more in a team), if
not following the drastic rules the article exposes.
This happens to be what Phobos gently mandates, UTF validation is
certainly the lesser evil as compared the mess that everything
become without. How is mandating valid UTF-8 being overly
pedantic? This is the sanest behaviour. Just use sanitizeUTF8
(http://vibed.org/api/vibe.utils.string/sanitizeUTF8) or
equivalent.