5

我正在尝试编写一些仅在用户拥有gcc并已glib安装的情况下可移植的 C 代码。

从我所有的研究中,我发现 with gcc, awchar_t总是定义为 4 个字节,而 with glibagunichar也是 4 个字节。

没有想到的是,如果像 a gunichar, awchar_t也被编码为 UCS4。是这样吗?如果是这样,我应该能够简单地将 agunichar*转换为 awchar_t*并使用这些stdc wcs*功能,对吗?

4

1 回答 1

8

如果您使用 GLib,请不要使用wchar_t. 使用它的 unicode 支持,它比 C 标准库的支持要好很多。

wchar_t在 Linux 和 Mac OS(以及其他一些)上是 4 个字节,而不是在 Windows 上(那里是 2 个字节)和其他一些。可移植代码意味着避免wchar_t像瘟疫一样。

于 2012-03-24T10:12:42.333 回答