我有一个使用UTF-8字符串输出文本表的程序,并且我需要测量字符串使用的等宽字符单元数,以便正确对齐它。如果可能的话,我想使用标准功能。
来自Unix / Linux的UTF-8和Unicode常见问题解答:
可以使用C以可移植的方式在C中计算字符数mbstowcs(NULL,s,0)。只要已选择适当的语言环境,此方法就可以与其他支持的编码一样适用于UTF-8。计算UTF-8字符串中字符数的一种硬连接技术是对除0x80 – 0xBF范围内的所有字节以外的所有字节进行计数,因为这些只是连续字节,而不是它们自己的字符。但是,在应用程序中很少出现计数字符的需求。
mbstowcs(NULL,s,0)