【发布时间】:2015-07-10 08:06:30
【问题描述】:
我想创建一个字符串库,其中包含两个不同的字符串类来处理 UTF-8 和 UCS-2(我相信这是某种 UTF-16,不处理 0xFFFF 以上的代理和字符)。
在 Windows 平台上,宽字符为 2 个八位字节宽。在 Linux 上它们是 4。那么与宽字符字符串相关的函数会发生什么?您是否在 Windows 上传递 2 个八位字节宽的项目和在 linux 上传递 4 个八位位组宽的项目的缓冲区?如果是,那么它会使这些功能在 windows 和 linux 上完全不同,这并不能使它们真正“标准”...
在尝试创建一个应该以与跨平台代码相同的方式操作宽字符的库时,如何处理这个问题?谢谢。
【问题讨论】:
-
glib 具有适用于 UTF-8 的字符串实用函数,这可能会有所帮助。
-
我假设我可以在 linux 和 windows 上使用窄字符字符串函数,因为它们都使用一个字节字符。我的问题是关于使用宽字符。
-
您提议重新发明轮子。此类事物有多种现有的库,具有不同级别的功能。其中一个更好的是 IBM 赞助的开源多平台 ICU 项目。
标签: c linux windows string unicode