我正在尝试编写一些仅在用户具有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个字节),在其他操作系统上则为4字节。可移植代码意味着像瘟疫一样避免wchar_t
。