C++ 获取unicode代码点的大写或小写(如uint32\t)

C++ 获取unicode代码点的大写或小写(如uint32\t),c++,c,string,unicode,utf-8,C++,C,String,Unicode,Utf 8,是否有方法获取给定unicode代码点(或等效utf-8代码单元序列)的大写或小写字符 我读到这可以通过ICU来完成,但这是我唯一需要ICU做的事情,所以我不想为一个功能导入一个巨大的库(包括它的许可证和依赖项,如果有的话) 我还了解到大小写取决于语言环境。这到底是什么意思 谢谢你的帮助 PS:不能使用C++11,使用VS2005是正确的工具。大小写折叠(即多个符号代表同一个“字母”)在一般形式中是一个棘手的概念 i的大写形式是什么?我们在哪个国家,用什么语言写作?英语有一对Ii。土耳其语有两对

是否有方法获取给定unicode代码点(或等效utf-8代码单元序列)的大写或小写字符

我读到这可以通过ICU来完成,但这是我唯一需要ICU做的事情,所以我不想为一个功能导入一个巨大的库(包括它的许可证和依赖项,如果有的话)

我还了解到大小写取决于语言环境。这到底是什么意思

谢谢你的帮助


PS:不能使用C++11,使用VS2005是正确的工具。大小写折叠(即多个符号代表同一个“字母”)在一般形式中是一个棘手的概念

i
的大写形式是什么?我们在哪个国家,用什么语言写作?英语有一对
Ii
。土耳其语有两对:
i
。所以它不是那么简单,并且解释了问题的“区域设置问题”部分

另一个有趣的例子是德语
ß
(英语中的Eszett或“sharp S”)的大写字母。它的大写形式是两个字母,
SS
。因此,不能保证字符串的大写形式中包含相同数量的字母


有可能有一些小型库只关注箱子折叠,但我不知道。一般来说,要合理地使用Unicode,您必须使用大量的Unicode。

好的,谢谢您花时间回答。我会看看我能对ICU做些什么。一个提示:我建议尝试静态链接ICU。您可能会发现,它大大减少了依赖项的大小,因为编译器可以剥离许多您不使用的功能。@Virus721:这是因为它实现了Unicode,它试图支持每种语言。一个可容纳6000多种语言的库并不容易。