C++ +中的字符串和特殊字符+;NDK

C++ +中的字符串和特殊字符+;NDK,c++,utf-8,C++,Utf 8,我需要在(c++ NDK)中传递一个字符串值,并用字符串做一个循环。 但是这个字符串的长度比正常长度大,我不能得到“Ç”字符。 有什么可以帮我的吗? 我不使用文本文件。此值使变量和id nedd获得所有字符值,包括或不包括特殊字符。在UTF-8中,字符长度为一到六个字节(chars)。更多细节。要获取长度,最简单的方法是跳过所有连续字节: size_t length = 0; for (char c : text) if ((c & 0xC0) != 0x80) // The f

我需要在(c++ NDK)中传递一个字符串值,并用字符串做一个循环。 但是这个字符串的长度比正常长度大,我不能得到“Ç”字符。 有什么可以帮我的吗?
我不使用文本文件。此值使变量和id nedd获得所有字符值,包括或不包括特殊字符。

在UTF-8中,字符长度为一到六个字节(
char
s)。更多细节。要获取长度,最简单的方法是跳过所有连续字节:

size_t length = 0;
for (char c : text)
    if ((c & 0xC0) != 0x80) // The first two bits are not 10
        ++length;

每个新字符的第一个字节的长度都增加了,所以你应该能够改变循环来获得字符序列。

在什么字符编码中?我使用Eclipse,我将工作空间选项和内容类型配置成UTF-8,但是我用NDK构建编译C++库,我不知道如何定义这个……字符代码是0xC7,它将UTF转换为c3 87,因此
“\xC3\x87”
应该可以做到这一点。这个单词包含7个字符。但是string.legth()返回8个字符,干扰了我的循环。字符“Ç”打开2个字符,明白吗?