据我所知,Linux使用UTF-8编码。这意味着我可以使用
现在,在UTF-8中,我们知道有些字符是1个字节,有些是2个、3个字节等。我的问题是:如何在Linux上使用C++处理UTF-8编码的字符串?
特别地,如何获得字符串的长度(以字节或字符数表示)?如何遍历字符串等等。
我之所以问这个问题,是因为如我所说,在UTF-8中,字符可能不止一个字节,对吧?因此,显然
std::string
来处理字符串,对吗?只是编码将是UTF-8。现在,在UTF-8中,我们知道有些字符是1个字节,有些是2个、3个字节等。我的问题是:如何在Linux上使用C++处理UTF-8编码的字符串?
特别地,如何获得字符串的长度(以字节或字符数表示)?如何遍历字符串等等。
我之所以问这个问题,是因为如我所说,在UTF-8中,字符可能不止一个字节,对吧?因此,显然
myString[7]
和myString[8]
可能不指代两个不同的字符。另外,UTF-8字符串的长度为十个字节,并不能说明它的字符数,对吧?
wstring
并不能解决这个问题,它只是忽略了这些问题。 - Konrad Rudolph