打开WORD,输入一个汉字,然后alt+X 可以查看他的Unicode编码(有人说是一种形式的UTF16)
在线查看汉字的各种编码的网址 http://bm.kdd.cc/index.asp
区位码 全表http://www.cn1.net/zhuanli/QuWeiMa.htm
高字节表示大区,一个72个,从0xB0到0xF7
低字节表示每个区的各个字符,每个区都是94个字符。低字节范围0xA1到0xFE。
不过XP多字节默认的是GBK,现在还没有发现GB2312用途
在OpenGL中显示中文最简单的方法:
工程必须为Unicode,在初始化的时候使用wglUseFontBitmaps(注意GL Rendering Context已经建立好了)
示例代码
LOGFONT font; GLuint iFontList; HFONT hFont; /**************************/ void SetupFonts() { font.lfHeight=20; font.lfWidth=0; font.lfEscapement=0; font.lfOrientation=0; font.lfWeight=200; font.lfItalic=FALSE; font.lfUnderline=FALSE; font.lfStrikeOut=FALSE; font.lfCharSet=GB2312_CHARSET; font.lfOutPrecision=OUT_DEFAULT_PRECIS; font.lfClipPrecision=CLIP_DEFAULT_PRECIS; font.lfQuality=ANTIALIASED_QUALITY; font.lfPitchAndFamily=DEFAULT_PITCH; lstrcpy(font.lfFaceName,L"黑体"); hFont=CreateFontIndirect(&font); SelectObject(hdc,hFont); iFontList=glGenLists(40960); wglUseFontBitmaps(hdc,0,40960,iFontList); DeleteObject(hFont); }
使用汉字的时候可以用如下代码
void PutText(const wchar_t* name) { static int i; glListBase(iFontList); i= wcslen(name); glCallLists(i,GL_UNSIGNED_SHORT,name); }