首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GCC下的2字节(UCS-2)宽字符串

GCC下的2字节(UCS-2)宽字符串
EN

Stack Overflow用户
提问于 2010-05-08 01:28:34
回答 4查看 4.4K关注 0票数 4

在将我的Visual C++项目移植到GCC时,我发现默认情况下wchar_t数据类型是4字节UTF-32。我可以用编译器选项覆盖它,但是整个wcs* (wcslen、wcscmp等)RTL的一部分无法使用,因为它采用了4字节宽的字符串。

到目前为止,我已经从头开始重新实现了其中的5-6个函数,并在#中定义了我的实现。但是,有没有一个更优雅的选择-比方说,构建一个带有2字节wchar-t的GCC RTL,静静地坐在某个地方,等待被链接?

我想要的是Mac上的Xcode,Cygwin,以及Debian Linux Etch自带的那个,这些都是我想要的。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-10-12 11:41:56

重新实现了5-6个更常见的wcs*函数,#在中定义了我的实现。

票数 0
EN

Stack Overflow用户

发布于 2010-05-08 01:59:39

但是有没有一个更优雅的选择-比方说,构建一个带有2字节wchar-t的GCC RTL,静静地坐在某个地方,等待被链接?

不是的。这是一个特定平台的问题,不是GCC的问题。

也就是说,Linux平台ABI指定wchar_t是32位宽的,所以要么你必须使用一个全新的库( ICU是一个流行的选择),要么移植你的代码来处理4字节的wchar_t。所有你可能链接到的库也将假定为4字节的wchar_t,如果你使用的是GCC的-fshort-wchar,就会崩溃。

但特别是在Linux上,几乎每个人都为所有多字节编码制定了UTF-8标准。

票数 2
EN

Stack Overflow用户

发布于 2010-05-08 01:31:39

看看ICU library。它是一个带有UTF-16API的可移植库。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2790412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档