在C语言中怎样获得汉字编码? 汉字编码分好几种,不知道你想问的是哪种?C/C++支持的是ASCII,不过汉字编码中,GB2312与ASCII是兼容的,所以可以在C中获得汉字的GB2312编码GB2312是两个字节的,第一字节是高八位,第二字节是低八位,比如下面的程序:includeincludeint main(){char a[5];strcpy(a,\"啊\");printf(\"%XH%XH\\n\",(unsigned char)a[0],(unsigned char)a[1]);return 0;}a[0]是“啊”字的高八位,a[1]是低八位,程序运行结果是a[0]=B0 a[1]=A1,用16进制表示的,所以“啊”字的GB2312编码是B0A1了~输出时要强制转换成unsigned char,不然就变成负数了,因为编码是以8位的无符号整数为单位的当然也可以转成10进制啦,比如int b;b=(unsigned char)a[0]*256+(unsigned char)a[1];b即为汉字的10进制GB2312编码了
C语言 如何输入汉字 或者是汉字是否有对应的像ascii码似的东西来表示它。谢谢三位的回答,但是我在控制台窗口(就是那个DOS黑窗口下.)下切换不了输入法啊!各位怎么切换的输入法啊!。
GB与BIG5汉字编码的转化函数(c语言) #includeincludeincludeincludeint main(void){char*temp;char sim[32]=\"狗;char tra[32];wchar_t uni[32];temp=setlocale(LC_ALL,\".936\");puts(temp);printf(\"%s\\t%2x%2x\\r\\n\",sim,(unsigned char)(sim[0]),(unsigned char)(sim[1]));if(-1=mbstowcs(uni,sim,32)){perror(\"mbstowcs\");}temp=setlocale(LC_ALL,\".950\");if(-1=wcstombs(tra,uni,32)){perror(\"wcstombs\");}printf(\"%s\\t%2x%2x\\r\\n\",tra,(unsigned char)(tra[0]),(unsigned char)(tra[1]));system(\"PAUSE\");return 0;}