我正在尝试编写一些仅在用户拥有 gcc
并且安装了 glib
的情况下才可移植的 C 代码。
根据我所有的研究,我发现对于 gcc
,一个 wchar_t
总是被定义为 4 个字节,而对于 glib
一个gunichar
也是 4 个字节。
我没有想通的是,如果像 gunichar
一样,wchar_t
也被编码为 UCS4。是这样吗?如果是这样,我应该能够简单地将 gunichar*
转换为 wchar_t*
并使用 stdc wcs*
函数,对吗?
最佳答案
如果您使用 GLib,请不要使用 wchar_t
。使用它的 unicode 支持,它比 C 标准库的支持要好很多。
wchar_t
在 Linux 和 Mac OS(以及其他一些操作系统)上是 4 个字节,而不是在 Windows(那里是 2 个字节)和其他一些操作系统上。可移植代码意味着像避免瘟疫一样避免 wchar_t
。
关于c - glib gunichar 和 wchar_t 之间有什么区别,哪个更适合跨平台解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9850553/