%20%E6%AA%A2%E7%B4%A2%E7%9A%84%20wchar_t%20%E5%80%BC%E4%B8%8D%E6%98%AF%20UNICODE%20%E5%80%BC%E6%98%AF%E5%90%A6%E6%9C%89%E5%8E%9F%E5%9B%A0%EF%BC%9F.png)
如果我將字元 'ö' 從 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。