GB2312
2014-12-16 23:48 双头蛇 阅读(419) 评论(0) 编辑 收藏 举报GB2312一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。
以下代码输出GB2312的所有字符(刚刚好7445个字符)
unsigned short range[][2] = { {0xA1A1,0xA1FE}, {0xA2B1,0xA2E2}, {0xA2E5,0xA2EE}, {0xA2F1,0xA2FC}, {0xA3A1,0xA3FE}, {0xA4A1,0xA4F3}, {0xA5A1,0xA5F6}, {0xA6A1,0xA6B8}, {0xA6C1,0xA6D8}, {0xA7A1,0xA7C1}, {0xA7D1,0xA7F1}, {0xA8A1,0xA8BA}, {0xA8C5,0xA8E9}, {0xA9A4,0xA9EF}, {0xB0A1,0xB0FE}, {0xB1A1,0xB1FE}, {0xB2A1,0xB2FE}, {0xB3A1,0xB3FE}, {0xB4A1,0xB4FE}, {0xB5A1,0xB5FE}, {0xB6A1,0xB6FE}, {0xB7A1,0xB7FE}, {0xB8A1,0xB8FE}, {0xB9A1,0xB9FE}, {0xBAA1,0xBAFE}, {0xBBA1,0xBBFE}, {0xBCA1,0xBCFE}, {0xBDA1,0xBDFE}, {0xBEA1,0xBEFE}, {0xBFA1,0xBFFE}, {0xC0A1,0xC0FE}, {0xC1A1,0xC1FE}, {0xC2A1,0xC2FE}, {0xC3A1,0xC3FE}, {0xC4A1,0xC4FE}, {0xC5A1,0xC5FE}, {0xC6A1,0xC6FE}, {0xC7A1,0xC7FE}, {0xC8A1,0xC8FE}, {0xC9A1,0xC9FE}, {0xCAA1,0xCAFE}, {0xCBA1,0xCBFE}, {0xCCA1,0xCCFE}, {0xCDA1,0xCDFE}, {0xCEA1,0xCEFE}, {0xCFA1,0xCFFE}, {0xD0A1,0xD0FE}, {0xD1A1,0xD1FE}, {0xD2A1,0xD2FE}, {0xD3A1,0xD3FE}, {0xD4A1,0xD4FE}, {0xD5A1,0xD5FE}, {0xD6A1,0xD6FE}, {0xD7A1,0xD7F9}, {0xD8A1,0xD8FE}, {0xD9A1,0xD9FE}, {0xDAA1,0xDAFE}, {0xDBA1,0xDBFE}, {0xDCA1,0xDCFE}, {0xDDA1,0xDDFE}, {0xDEA1,0xDEFE}, {0xDFA1,0xDFFE}, {0xE0A1,0xE0FE}, {0xE1A1,0xE1FE}, {0xE2A1,0xE2FE}, {0xE3A1,0xE3FE}, {0xE4A1,0xE4FE}, {0xE5A1,0xE5FE}, {0xE6A1,0xE6FE}, {0xE7A1,0xE7FE}, {0xE8A1,0xE8FE}, {0xE9A1,0xE9FE}, {0xEAA1,0xEAFE}, {0xEBA1,0xEBFE}, {0xECA1,0xECFE}, {0xEDA1,0xEDFE}, {0xEEA1,0xEEFE}, {0xEFA1,0xEFFE}, {0xF0A1,0xF0FE}, {0xF1A1,0xF1FE}, {0xF2A1,0xF2FE}, {0xF3A1,0xF3FE}, {0xF4A1,0xF4FE}, {0xF5A1,0xF5FE}, {0xF6A1,0xF6FE}, {0xF7A1,0xF7FE}, }; unsigned short count = 0; unsigned short j; unsigned short i; for(i = 0; i < sizeof(range)/sizeof(range[0]); i++) { for(j = range[i][0]; j <= range[i][1]; j++) { printf("%d 0x%04X\n", ++count, j); } } FILE *fp = fopen("gb2312character.txt","wb"); if(fp == NULL)return 0; for(i = 0; i < sizeof(range)/sizeof(range[0]); i++) { for(j = range[i][0]; j <= range[i][1]; j++) { fputc(j>>8, fp); fputc(j&0xff,fp); } } if(fp!=NULL) { fclose(fp); fp = NULL; }