有没有办法获得给定unicode代码点(或等效的utf-8代码单元序列)的大写或小写字符?
我读到这可以用ICU来完成,但这是我唯一需要ICU的东西,所以我不想导入一个庞大的库(带有许可证和依赖项,如果有的话,对于一个特征。
我还读到大写和小写取决于语言环境。这究竟意味着什么?
感谢您的帮助。
PS:使用VS2005无法使用C ++ 11
答案 0 :(得分:3)
ICU是正确的工具。案例折叠(多个符号代表相同“字母”的想法)在一般形式中是一个棘手的概念。
i
的大写形式是什么?我们在哪个国家/地区以及我们撰写的语言是什么?英语有Ii
对。土耳其语有两对:İi
和Iı
。所以它并不那么简单,并解释了“语言环境问题”的一部分。
另一个有趣的案例是德语ß
的资本(英语中的Eszett或“sharp S”)。它的大写形式是两个字母SS
。因此,没有承诺字符串的大写形式甚至会包含相同数量的字母。
可能有一些小型图书馆专注于案例折叠,但我不知道。通常要合理地做Unicode,你必须做很多Unicode。