最近,使用freetype 2 显示中文,遇到了一下乱码的问题。 网上关于UTF-8编码的介绍已经有很多,不多做介绍;这里对如何 获取UTF-8编码 做个记录。 unsigned long get_utf8_code(unsigned char * pcode) { unsigned long result=0; //0XXXXXXX if ((*pcode)<0x80) { result += (*pcode)&0x7f; pcode++; } //110XXXX 10XXXXXX else if ((*pcode)>=0xc0 && (*pcode)<0xe0) { result += (*pcode)&0x1f << 6; pcode++; result += (*pcode)&0x3f; pcode++; } //1110XXXX 10XXXXXX 10XXXXXX else if ((*pcode)>=0xe0 && (*pcode)<0xf0 ) { result += ((*pcode)&0x0f)<<12; pcode++; result += ((*pcode)&0x3f)<<6; pcode++; result += ((*pcode)&0x3f); pcode++; } //11110XXX 10XXXXXX 10XXXXXX 10XXXXXX else if ((*pcode)>=0xf0) { result += (*pcode)&0x07<<18; pcode++; result += (*pcode)&0x3f<<12; pcode++; result += (*pcode)&0x3f<<6; pcode++; result += (*pcode)&0x3f; pcode++; } return result; }