Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我还需要区域设置感知大小写转换。.NET 做得很好。我们 C++ 程序员必须等待 100 年才能得到这样的东西吗?我知道 ICU 库,但它是 20MB,我什至无法将我的代码与它链接起来......总而言之,我想结束这个噩梦......
您可能希望使用操作系统提供的 API。Windows 具有处理特定于区域设置的字符串比较和大小写转换的 NLS API。
独立的 Unicode 库是 ICU 和 IConv。两者都需要一些时间来学习。数据文件也相当大 - 预计携带 > 10M 的数据文件以支持大多数语言。
顺便说一句,您的链接错误通常是由于您指定了静态库但导入的函数具有指定 DLL 的 dllimport 属性。默认情况下,ICU 头文件在其 API 上声明 dllimport。您需要在包含 ICU 标头之前定义一个宏。
这就是你所需要的。编码/解码为 UTF-16 和 UCS-32 或在需要与旧版操作系统交互时拥有的内容。