gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 21:08:32 25 4
gpt4 key购买 nike

将我的 Visual C++ 项目移植到 GCC 时,我发现 wchar_t 数据类型默认为 4 字节 UTF-32。我可以使用编译器选项覆盖它,但随后 RTL 的整个 wcs*(wcslen、wcscmp 等)部分变得不可用,因为它假定为 4 字节宽的字符串。

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

我所追求的特定 GCC 风格是 Mac OS X 上的 Xcode、Cygwin 以及 Debian Linux Etch 附带的那个。

最佳答案

But is there a more elegant option - say, a build of GCC RTL with 2-byte wchar-t quietly sitting somewhere, waiting to be linked?

没有。这是一个特定于平台的问题,而不是 GCC 问题。

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

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

关于c++ - GCC 下的 2 字节 (UCS-2) 宽字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2790412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com