如何将UTF-8字符串转换为大写?

时间:2012-03-29 16:03:42

标签: c utf-8

是否有可行的方法将C中的UTF-8字符串转换为大写字母?如果没有,Linux的方法是什么?

3 个答案:

答案 0 :(得分:8)

这样做的便携方式是使用Unicode感知库,例如ICU。似乎u_strToUpper可能是您正在寻找的功能。

答案 1 :(得分:8)

glib有g_utf8_strup()

答案 2 :(得分:0)

执行此操作的规范方法是使用wchar_t - 如果您有一串宽字符并使用带有宽字符的towlower / towupper / towctrans(如果您的语言环境设置正确,则可以使用)。因此,您需要获取UTF-8字符串,将其转换为宽字符字符串,然后使用这些函数接受wchar_t然后转换回来。

这是一个巨大的PITA,所以你可能最好使用支持的开源Unicode库,如ICU