c - glib gunichar 和 wchar_t 之间有什么区别,哪个更适合跨平台解决方案?

标签 c unicode cross-platform glib wchar-t

我正在尝试编写一些仅在用户拥有 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/

相关文章:

c++ - Visual Studio 在 vmware 中与 gcc/gdb 交叉编译 -> 内存访问错误

c++ - GCC中格式错误的C/C++多维数组初始化

php - 将 IOS 表情符号转换为网页或安卓表情符号代码

c++ - 继承和覆盖 std::string 的函数?

html - '»' 和 '✔' 之类的字符不会出现在 Firefox 中

c++ - Lua 是游戏服务器的最佳/最快选择吗?

c - 如何编译/链接/构建小型可加载内核模块(LKM)?

c++ - 如何将 gcc 链接器固定地址添加到链接器文件中?

cross-platform - bazel 中依赖于平台的链接器标志(用于过剩)

python - Python中跨平台tell/seek的问题