Wide-char encoding will be that followed by the compiler. On most platforms it is UTF-32 and on Windows it is UTF-16.
Multi-byte to wide-char conversions assume utf-8 encoding of the multi-byte character strings irrespective of the current locale.
Wide-char to multi-byte conversions will convert to utf-8 encoded multi-byte strings irrespective of the current locale.
Explicit conversions will be as per the explicit expectation. For example, wide-char to char16_t string conversions will perform explicit conversion from the wide-char encoding to the UTF-16 encoding.
We want to start with the position that:
char16_t
string conversions will perform explicit conversion from the wide-char encoding to the UTF-16 encoding.