我想创建一个包含两个不同字符串类的字符串库来处理UTF-8和UCS-2(我相信某种UTF-16不处理代理和0xFFFF以上的字符)。
在Windows平台上,宽字符宽2个八位字节。在Linux上它们是4.那么与宽字符串相关的函数会发生什么?你在Windows上传递2个八位字节宽的缓冲区和在linux上传递4个八位字节宽的项吗?如果是,那么它会使这些功能在Windows和Linux上完全不同,这并不能使它们真正“标准化”......
在尝试创建一个应该以跨平台代码的相同方式操作宽字符的库时,如何处理此问题?谢谢。
答案 0 :(得分:0)
您对Windows和Linux上wchar_t
的不同大小有所了解。这也意味着你对广泛的字符处理功能没有太大的帮助。您应该查看编码转换库,例如libiconv。然后,您可以在内部使用UTF-8,只需转换I / O.