作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在不同平台(在我的例子中是 Windows 和 Linux)上遇到了编码问题。在 Windows 上,wchar_t 的大小是 2 个字节,而在 Linux 上是 4 个字节。我怎样才能将 wchar_t “标准化”为两个平台的相同大小?没有额外的库很难实现吗?现在,我的目标是 printf/wprintf API。数据通过套接字通信发送。谢谢。
最佳答案
如果您想跨不同平台和架构发送 Unicode 数据,我建议使用 UTF-8 编码和(8 位)char
。 UTF-8 有一些优点,比如没有端序问题(UTF-8 只是一个普通的字节序列,而不是 UTF-16 和 UTF-32 都可以是小端或大端...)。
在 Windows 上,只需在 Win32 API 的边界将 UTF-8 文本转换为 UTF-16(因为 Windows API 倾向于使用 UTF-16)。为此,您可以使用 MultiByteToWideChar()
API。
关于c - wchar_t在不同平台上的编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17930153/
我正在开发一个在 VS 社区 2017 中开发并使用 IIS Express 10 的 .net Core MVVC 项目,我遇到了 TempData 无法在我开发的 3 台计算机中的两台上运行的问题
我是一名优秀的程序员,十分优秀!