获取unicode代码点的大写或小写(如uint32_t)

Getting the upper or lower case of a unicode code point (as uint32_t)

本文关键字:uint32 代码 unicode 获取      更新时间:2023-10-16

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

我读到这可以用ICU完成,但这将是我唯一需要ICU的事情,所以我不想为单个功能导入整个庞大的库(带有其许可证和依赖项,如果有的话)。

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

谢谢你的帮助。

PS:不能使用c++ 11,使用VS2005

ICU是合适的工具。大小写折叠(多个符号代表同一个"字母"的想法)在一般形式下是一个棘手的概念。

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

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

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