https://bugs.winehq.org/show_bug.cgi?id=48174
--- Comment #32 from Rafał Mużyło galtgendo@o2.pl --- ...oh, well...
Anyhow, on one hand problem 2 seems like something not writing terminating null byte upon conversion, on the other the deeper I try to dive into mono source, the more it looks like all those conversions use mono_utf16_to_utf8 or some derivative, which definitely do write that byte...
So, while the hack from comment 18 does indeed feel wrong, one of the conversion paths must be missing that '+1'...