UTF-8 でエンコードされた文字列の長さの決定
C では、 std::string エンコードが異なる場合があり、そこで length() 関数を使用します。 UTF-8 でエンコードされた文字列は、実際の長さが不正確になる可能性があります。正しい長さを確認するには、次のバイト シーケンス パターンを考慮してください:
0x00000000 - 0x0000007F: 0xxxxxxx 0x00000080 - 0x000007FF: 110xxxxx 10xxxxxx 0x00000800 - 0x0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx 0x00010000 - 0x001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
UTF-8 でエンコードされた文字列の実際の長さを計算するには:
次のコード スニペットは実装を示しています。
<code class="cpp">int len = 0; const char *s = str.c_str(); // convert to C-style string while (*s) len += (*s++ & 0xc0) != 0x80;</code>
以上がC で UTF-8 でエンコードされた文字列の長さを正確に判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。