glib gunichar和wchar_t之间有什么区别,哪个更适合跨平台解决方案?
我正在尝试编写一些只在用户拥有gcc
可移植的C代码,并安装了glib
。
从我的所有研究中,我发现使用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
。