如果我将字符 'ö' 从 UTF-8 语言环境(其中 是由两个八位字节 0xC3 0xB6 表示)转换为wchar_t
,我得到wchar_t
的值为0xF6
。这适用于 Linux 和 Solaris。
如果我将字符“ö”从 ISO-8859-1 语言环境(其中 是由单个八位字节 0xF6 表示)转换为 a wchar_t
,则在 Linux 上得到wchar_t
的值为 0xF6,在 Solaris 上得到的值为 0x30000076。
有谁知道原因并能解释一下背景吗?
顺便说一句:由于 Solaris 的 i18n 源代码由 Sun/Oracle、IBM 和 HP 共享,因此这很可能也适用于 AIX 和 HP-UX。