国家标准GB18030-2000《信息交换用汉字编码字符集基本集的扩充》是我国继GB2312-1980和GB13000-1993之后最重要的汉字编码标准,是我国计算机系统必须遵循的基础性标准之一。
标准采用单字节、双字节和四字节三种方式对字符编码。
单字节部分采用GB/T 11383的编码结构与规则,使用0×00至0×7F码位(对应于ASCII码的相应码位)。
双字节部分,首字节码位从0×81至0×FE,尾字节码位分别是0×40至0×7E和0×80至0×FE。
四字节部分采用GB/T 11383未采用的0×30到0×39作为对双字节编码扩充的后缀,这样扩充的四字节编码,其范围为0×81308130到0×FE39FE39。其中第一、三个字节编码码位均为0×81至0×FE,第二、四个字节编码码位均为0×30至0×39。
判断字符是否为汉字:
int CheckChar( const char *Data, int Size )
{
unsigned char *p = (unsigned char *) Data;
/* 检查输入的参数*/
if ( p == NULL || Size <= 0 )
return 0;
/*中文字首位在 0x81-0xFE 范围内,不在此范围内则代表不是多字节字符,是单字节字符*/
if ( p[0] < 0x81 || p[0] >0xFE )
return 1;
if ( p[0] == 0x7C ) /*不能为'|' */
return -1;
/*中文字长度只能是2或者4*/
/* 如果小于2则代表不是中文字*/
if ( Siz