我是一名非计算机科学专业出身的新手,对C++语言不是很熟悉。如果我的问题比较幼稚或者已经被回答过,请多多包涵。
我在C++中有一个字符串,它使用泰卢固语。
std::string str = "ఉంది"; // (it means exists; pronounced as Vundi)
std::string substring = str.substr(0,3);
上述子字符串应为“ఉ”(发音为Vu),其Unicode十六进制值为0C09。
如何从子字符串获取值0C09? 目的是检查子字符串是否在泰卢固语的有效范围内(0C00-0C7F)。
我已经看到其他问题,它们适用于obj-c、java、php、c#等。我特别寻找使用std::string的c++。
根据评论,我阅读了joelonsoftware.com/articles/Unicode.html上的文章。
让我用更多信息更新我的问题。 我正在使用Fedora 19 x86_64,并且编码为UTF-8。控制台能够正确显示文本。
根据文章,如果我理解正确,ASCII是单字节字符,unicode是多字节字符。上面的代码示例反映了这一点,在这里每个Unicode字符的长度为3个字节。除了谈论UTF-8/文本编码和多字节字符之外,该文章在检测Unicode字符串的语言方面没有提供实际帮助。
也许我应该重新表达我的问题:
如何在C++中检测Unicode字符串的语言?
提前感谢您的帮助。