5

私が知っているように、LinuxはUTF-8エンコーディングを使用しています。これはstd::string、文字列を正しく処理するために使用できることを意味しますか? エンコーディングだけがUTF-8になります。

現在、UTF-8 では、一部の文字が 1 バイトで、一部が 2,3.. バイトであることがわかっています。私の質問は、Linux で C++ を使用して UTF-8 でエンコードされた文字列を処理する方法です。

特に: 文字列の長さをバイト単位 (または文字数) で取得するにはどうすればよいでしょうか? 文字列をどのようにトラバースしますか? 等

私が質問している理由は、UTF-8 文字で言ったように、1 バイトを超える可能性があるからです。したがって、明らかにmyString[7]and myString[8]- は 2 つの異なる文字を参照していない可能性があります。また、UTF-8 文字列が 10 バイトであるという事実は、その文字数についてあまり語っていませんよね?

4

5 に答える 5