0
我想标记输入由UTF-8字符组成。虽然有些尝试学习utf8我得到了一个我无法理解的输出。当我输入字符π(pi)时,我得到三个不同的数字207 128 10.我如何使用它们来控制它属于哪个类别?当我尝试输出UTF-8字符时,为什么会得到三个不同的数字?
ostringstream oss;
oss << cin.rdbuf();
string input = oss.str();
for(int i=0; i<input.size(); i++)
{
unsigned char code_unit = input[i];
cout << (int)code_unit << endl;
}
在此先感谢。
单个Unicode代码点可以使用最多4个字节(假设最大代码点为“U + 10FFFF”)编码为utf-8。但是一些用户感知的字符可以使用多于一个的代码点来表示(例如,一个字母和组合标记'q':'U + 0071 U + 0307 U + 0323'),因此单个字符可以表示为utf-8超过4个字节(例如,'len(u“q̣̇”.encode(“utf-8”))== 5') – jfs 2013-02-24 11:41:14
@JFSebastian我在回答中将“character”改为“code point”。 – 2013-02-24 13:24:20