是否有可行的方法将C中的UTF-8字符串转换为大写字母?如果没有,Linux的方法是什么?
答案 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。