怎么判断是否是中文字符?在先等
比如在一个字符串"jdal啊da"一个一个字符的读,怎么判断
是否是中文字符????
问题点数:100、回复次数:12Top
1 楼stonesky(流星雨)回复于 2002-04-03 16:00:11 得分 0
从头向后
如果某字节最高位为1,为中文共占两个字节Top
2 楼gk0205(沉默是金)回复于 2002-04-03 16:02:10 得分 0
能给段代码看看吗?楼上的同志Top
3 楼hse1018(一)回复于 2002-04-03 16:14:53 得分 30
一个汉字占用两个字节,每个字节的最高未必为1。
char *str;
int i;
....
for(i=0;i++;i<=strlen(str))
if(str[i]&0x80)
//可能是汉字,也可能是特殊制表符
if(i<strlen(str))&&(strlen(str+1)&0x80)
//是汉字
.........
Top
4 楼Nepton(小牛牛) :-)回复于 2002-04-03 16:16:49 得分 0
使用unicode编码,不管中文,还是英文,都是占两个字符,haha 太好用了!Top
5 楼gigix(透明)回复于 2002-04-03 16:29:23 得分 0
汉字的编码是大于127的。Top
6 楼gk0205(沉默是金)回复于 2002-04-03 16:37:33 得分 0
if(i<strlen(str))&&(strlen(str+1)&0x80) //解释一下
请把这行写完整好吗?100分奉上
Top
7 楼yie_lang(非李)回复于 2002-04-03 17:26:01 得分 70
首先,汉字是双字节的编码格式!
汉字的第一字节:是从0xB0 开始编码
汉字的第二字节:是从0xA1 开始编码
有了以上的了解,就不难识别出是中文,还是其他的编码!
程序中只需要判断( 第一字节>0xB0 && 第二字节>0xA1 )就好!
以上在中文操作系统win 98/me/2000/xp 上调试成功
以上是个人意见仅供参考,如有错误请各位指正!
Top
8 楼yie_lang(非李)回复于 2002-04-03 17:29:27 得分 0
修正:
程序中只需要判断( 第一字节>0xB0 && 第二字节>0xA1 )就好!
应该为:
程序中只需要判断( 第一字节>=0xB0 && 第二字节>=0xA1 )就好!
让各位见笑了!
Top
9 楼hse1018(一)回复于 2002-04-03 18:43:07 得分 0
//不好意思,语句有错
一个汉字占用两个字节,每个字节的最高未必为1。
char *str;
int i;
....
for(i=0;i++;i<=strlen(str))
if(str[i]&0x80)
//可能是汉字,也可能是特殊制表符
if(i<strlen(str))&&(strlen(str+i+1)&0x80)
{
//i<strlen(str) 是防止到达串尾进行了益处操作。
.........
i++;
//说明没有考虑连续的
}
Top
10 楼forest_wawa(大坏蛋007)回复于 2002-04-04 00:13:02 得分 0
学了一招!还有,请问老手:
问题1:这里代码中指的汉字是不是就指俺们这个页面所使用的GB2312汉字编码方式?如果是其他编码(BIG5或什么)的话怎么办?
问题2:请问有关汉字的编码资料哪里可以找到?Top
11 楼forest_wawa(大坏蛋007)回复于 2002-04-04 00:14:49 得分 0
TO:Nepton(小牛牛) :-)
如何在程序中使用unicode编码?
Top
12 楼alang_xy((无名))回复于 2002-06-10 17:31:56 得分 0
如何在程序中使用unicode编码?
请各位关注。我也学习学习。Top




