¿Hay alguna razón por la cual el valor de wchar_t recuperado por mbtowc() no es el valor UNICODE?

¿Hay alguna razón por la cual el valor de wchar_t recuperado por mbtowc() no es el valor UNICODE?

Si convierto el carácter 'ö' de una configuración regional UTF-8 (donde está representado por los dos octetos 0xC3 0xB6) a a wchar_t, obtengo un wchar_tvalor que es 0xF6. Esto se aplica a Linux y Solaris.

Si convierto el carácter 'ö' de una configuración regional ISO-8859-1 (donde está representado por el octeto único 0xF6) a wchar_t, obtengo un wchar_tvalor de 0xF6 en Linux y un valor de 0x30000076 en Solaris.

¿Alguien sabe el motivo y puede explicar los antecedentes?

Por cierto: dado que Sun/Oracle, IBM y HP comparten el código fuente i18n de Solaris, existe una gran posibilidad de que esto se aplique también a AIX y HP-UX.

información relacionada