This behavior is actually in line with what I’d expect, as Unicode support in Windows predates UTF-16, so Windows generally does not handle surrogate pairs and instead operates almost exclusively on WTF-16 code units directly.
So it’s just straight UCS-2, and the software does enforce that, pretty much the opposite of “WTF-16”.
Edit: Pretty sure “modern” (XP+ I think) Windows actually does enforce UTF-16 validity in the system, but there’s always legacy stuff from the NT4/2K era that might turn up.
So it’s just straight UCS-2, and the software does enforce that, pretty much the opposite of “WTF-16”.
Edit: Pretty sure “modern” (XP+ I think) Windows actually does enforce UTF-16 validity in the system, but there’s always legacy stuff from the NT4/2K era that might turn up.