c++ - 是否有可以在 Win32 和 MacOSX 系统上使用的跨平台 unicode 字符串类?

标签 c++ unicode locale uppercase unicode-string

我还需要区域设置感知大小写转换。 .NET 在这方面做得很好。我们 C++ 程序员必须为这样的事情等待 100 年吗?我知道 ICU 库,但它有 20MB,我什至无法将我的代码与其链接起来......总而言之,我想结束这场噩梦......

最佳答案

您可能希望使用操作系统提供的 API。 Windows 具有 NLS API,可处理特定于语言环境的字符串比较和大小写转换。

独立的 Unicode 库是 ICU 和 IConv。两者都需要一些时间来学习。数据文件也相当大 - 预计携带 > 10M 的数据文件以支持大多数语言。

顺便说一句,您的链接错误通常是由于您指定了静态库但导入的函数具有指定 DLL 的 dllimport 属性。默认情况下,ICU 头文件在其 API 上声明 dllimport。在包含 ICU header 之前,您需要定义一个宏。

关于c++ - 是否有可以在 Win32 和 MacOSX 系统上使用的跨平台 unicode 字符串类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5051601/

相关文章:

python - 使用 PyYaml 加载特殊字符

Java:将字符串转换为特定区域设置

automation - "official"国家/地区列表的数据来源

java - 为什么我可以使用 US Ascii Locale 来处理大写/小写的德语变音符号?

c++ - 性能损失并行

c++ - 如何在一个 catch block 中捕获所有类型的异常?

c++ - vector 中重复的 unique_ptr 项的所有权错误

c# - JSON 从 unicode 到原始格式的转换

c# - 如何在C#中比较和转换emoji字符

c++ - 创建具有正确边的无向图