There might be circumstances when it's not, either because the client sends a non-UTF-8 request or because the server does some normalization (e.g. 'mbcs'). Supporting these corner cases is not worth the extra complexity, not to mention we don't have such a setup for testing, se we'd likely get it wrong anyway.
Closes #3663.