hur.cn - 华软网

 热门搜索

VC如何判断一个汉字是否国标GB2312范围汉字

  作者:未知    来源:网络    更新时间:2011/1/11
如何判断一个汉字是否国标GB2312范围汉字,以前看过,忘记了。
讨教!
---华软 网友回答---
http://www.jysls.com/thread-93711-1-1.html
---华软网友回复---
看这份编码表,是B0A0----F7FF
http://www.knowsky.com/resource/gb2312tbl.htm

---华软网友回复---
谢谢两位的热情帮助,我用的是VS2005,多字节字符集编程,问题有些奇怪,:

char a[10];

if(a>0){

   //是英文字符

}else{

  //是汉字

}

以上是正确的,能够运行,然则


if(a>0){

   //是英文字符

}else{

   //是汉字
   if((a>oxb0 && a<0xf7) && ((a+1)>0xao && a+1<0xff )){
     //是GB2312
    }else{
     //超越 GB2312
    
   }   
 }

不能正确运行:

比如“我”的首字节为“ce”, 但a>oxb0 居然是false 而a<0xf7 是true。
---华软网友回复---
a>oxb0 要改成 (unsigned char)a > 0xb0
这个毛病偶也经常犯
---华软网友回复---
引用 3 楼 hztj2005 的回复:
谢谢两位的热情帮助,我用的是VS2005,多字节字符集编程,问题有些奇怪,:

char a[10];

if(a>0){

   //是英文字符

}else{

  //是汉字

}

以上是正确的,能够运行,然则


if(a>0){

   //是英文字符

}else{

   //是汉字
   if((a>oxb0 &amp;&amp;……


用无符号的,UCHAR a[10];
---华软网友回复---
引用 3 楼 hztj2005 的回复:
谢谢两位的热情帮助,我用的是VS2005,多字节字符集编程,问题有些奇怪,:

char a[10];

if(a>0){

  //是英文字符

}else{

  //是汉字

}

以上是正确的,能够运行,然则


if(a>0){

  //是英文字符

}else{

  //是汉字
  if((a>oxb0 &amp;&amp; a<0x……

你那char错了。
     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。