‘壹’ c语言中如何识别汉语
utf-8先转unicode,然后判断与127关系.
gbk系列判断当前字节<127则非中文,否则为中文,并跳过2字节。
gbk编码
if (*((BYTE*)str+i) > 0x80 && *((BYTE*)str+i+1) > 0x40)
\\ 中文.
‘贰’ 请教如何识别url中的中文,并把中文进行转义
JavaScript中存在几种对URL字符串进行编码的方法:escape(),encodeURI(),以及encodeURIComponent()。这几种编码所起的作用各不相同。
escape() 方法:
采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。
不会被此方法编码的字符: @ * / +
encodeURI() 方法:
把URI字符串采用UTF-8编码格式转化成escape格式的字符串。
不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + '
encodeURIComponent() 方法:
把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。
不会被此方法编码的字符:! * ( ) '
因此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用 escape。如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者 encodeURIComponent。
所以总结为:
如果你是 GB2312 编码,使用 escape 函数
如果你是 UTF8 编码 ,还可以使用 encodeURIComponent 函数
兼容 IE6 IE7 IE8 FF3.5
‘叁’ c语言如何判断字符串中有几个中文,下面代码意思
for(i=0;s[i];i++) //扫描整个字符串,s[i]就是s[i]!='\0',即未到串尾
if(s[i]<0) //汉字的ASCII码属于“扩展ASCII码”,其每个字符的码值大于127,由于字义的是char数组,每个元素的表示范围为-128~+127,所以,大于127的字符在char中表现为负数。
i++,n++; //判断为一个汉字,由于每个汉字占两个字节,所以这里先i+1,再记录汉字数n也加1
‘肆’ 怎么用C语言判断数组里面的字符是汉字还是其他。
汉字的国标码的第一位是1,assic码的第一位是0,可以根据这个性质检测一下,用10000000&(数组某位),如果结果是10000000,则是国标码,连续两个就能拼成一个汉字了。
‘伍’ 在C语言里该怎样用if语句去判断输入的中文字符的是否呢,请各位大神指点
可以使用 string.h 中的strcmp()函数来比较
比如:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
intmain(void){
char*str[100];
gets(str);
if(strcmp(str,"你好")==0){
puts("两个字符串相同");
}
puts("end");
returnEXIT_SUCCESS;
}
‘陆’ C语言中如何判断中文字符
测试过了,你看看怎么样吧
#include<stdio.h>
int main(void)
{
char s[20];
int i,j;
char a,c[3];
FILE * fp;
scanf("%s",s);
fp=fopen(s,"r");
if(!fp){
printf("open error\n");
return 1;
}
i=0;
c[2]='\0';
while((a=fgetc(fp))!=EOF){
if(a&0x80){
c[i]=a;
i++;
if(i==2){
printf("%s 是汉字\n",c);
i=0;
}
}
else i=0;
}
getchar();
getchar();
return 0;
}
‘柒’ C语言编程中如何判断一个字符是不是某个汉字,比如“我”。
一个汉字是两个字符,因此需要使用字符串来判断。
‘捌’ 如何在c语言的中文字符串中判断是否存在特定的汉字
#include<stdio.h>
#include<string.h>
intmain()
{chars[200],s1[3];
inti;
printf("请输入一串汉字:");
scanf("%s",s);
printf("请输入要查找的一个汉字:");
scanf("%s",s1);
for(i=0;i<strlen(s);i+=2)
if(s[i]==s1[0]&&s[i+1]==s1[1])
{printf("您输入的第%d个汉字是%s
",i/2+1,s1);
break;
}
if(i>=strlen(s))printf("未找到!");
return0;
}
‘玖’ c语言如何判断字符串中有几个中文,下面代码意思
or(i=0;s[i];i++)
//扫描整个字符串
if(s[i]<0)
//汉字的ASCII码属于“
扩展ASCII
码,其每个字符的码值大于127,由于字义的是char数组,每个元素的表示范围为-128~+127,所以,大于127的字符在char中表现为负数。
i++,n++;
//判断为一个汉字,由于每个汉字占两个字节,所以这里先i+1,再记录汉字数n也加1
‘拾’ C语言中如何判断中文字符
这是跟汉字的存储方式有关,西文字符用ASCII码的话,一个字节可以表示一个字符,而汉字用的是双字节表示一个汉字。
那么,为了在机器内部区分ASCII码和汉字机内码,就规定汉字的两个字节的最高为都为1.
例如:汉字“啊”的汉字机内码为B0A1H
表示成双字节是这样的10110000 10100001
本程序用的就是判断最高位的方法。
int is_zh_ch(char p)
{
if(~(p >> 8) == 0) 将p字节进行移位运算,右移8位,这样,如果移位后是0,则说明原来的字节最高位为0,不是1那么也就不是汉字的一个字节。
{
return 0; //代表不是汉字
}
return -1;
}