c语言判断字符串的编码,C语言中判断一个char*是不是utf8编码
C语言中判断一个char*是不是utf8编码
里我修改了一下, 纯ASCII编码的字符串也返回true, 因为UTF8和ASCII兼容
实例代码:
int utf8_check(const char* str, size_t length) {
size_t i;
int nBytes;
unsigned char chr;
i = 0;
nBytes = 0;
while (i < length) {
chr = *(str + i);
if (nBytes == 0) { //计算字节数
if ((chr & 0x80) != 0) {
while ((chr & 0x80) != 0) {
chr <<= 1;
nBytes++;
}
if ((nBytes < 2) || (nBytes > 6)) {
return 0; //第一个字节最少为110x xxxx
}
nBytes--; //减去自身占的一个字节
}
} else { //多字节除了第一个字节外剩下的字节
if ((chr & 0xC0) != 0x80) {
return 0; //剩下的字节都是10xx xxxx的形式
}
nBytes--;
}
i++;
}
return (nBytes == 0);
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
c语言判断字符串的编码,C语言中判断一个char*是不是utf8编码相关推荐
- c语言判断utf-8中文字符串,C语言中判断一个char*是不是utf8编码分享
--想了解C语言中判断一个char*是不是utf8编码分享的全部内容且更多的C语言教程关注 C语言中判断一个char*是不是utf8编码 里我修改了一下, 纯ASCII编码的字符串也返回true, 因 ...
- java 判断字符串是否包含字母_Java中判断某一字符串是否包含数字、字母和中文...
importjava.util.regex.Matcher;importjava.util.regex.Pattern;public classStrValidate {//纯数字 private s ...
- c语言ip字符串转为数组,C语言 ip地址转换为单个数字
今天遇到一个面试测试题,如下 请写一段代码,可以将输入为"0.0.0.0"-"255.255.255.255"的字符串转换为int型整数数组. 输入:" ...
- C语言用字符串sex储存,C语言必须要记住的经典程序
原标题:C语言必须要记住的经典程序 1./*判断101-200之间有多少个素数,并输出所有素数及素数的个数. 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此 ...
- php语言查找字符串是否存在,PHP语言查找字符串是否存在的方法
这里整理了PHP语言查找字符串是否存在的方法,如果你想了解PHP语言查找字符串是否存在的方法,可以查看以下PHP语言查找字符串是否存在的方法详解. PHP语言查找字符串是否存在的方法一:采用in_ar ...
- c语言生命字符串,常见的C语言字符串操作
原标题:常见的C语言字符串操作 #字符串倒序输出 实现逻辑,通过strlen获取字符串长度,然后通过 len/2 进行交叉赋值,这里需要注意,不需要考虑len是奇数还是偶数的问题. 如果len是奇数, ...
- C语言去掉字符串首尾空格,C语言实现去除字符串首尾空格
C语言实现去除字符串首尾空格 2019年09月28日 | 萬仟网IT编程 | 我要评论 /* C语言去除字符串首尾空格,trim()函数实现 https://blog.csdn.net/u013022 ...
- c语言把字符串写入文件,c语言文件读写 | 按字符,按行,按块
按字符对文件读写 fopen(char *,r+):打开文件 fputc("c",FILE *fp):把字符写到fp文件中 tempc = fgetc(FILE *fp):从fp中 ...
- 10-1Python学习笔记 10-2C语言学习笔记 : 在文本编辑器中新建一个文件, 写几句话来总结一下你至此学到的Python知识
10-1 Python学习笔记 : 在文本编辑器中新建一个文件, 写几句话来总结一下你至此学到的Python知识, 其中每一行都以"In Python you can"打头. 将这 ...
最新文章
- c/c++基础 输入函数/流
- MyBatis 3 自动生成 主键 针对不同的数据库(oracle/sqlserver/mysql)
- 分布式面试题(含解答)
- Deep Image Homography Estimation
- 写二叉树程序时为什么总是报运行时错误_二叉树:一入递归深似海,从此offer是路人...
- LeetCode_database刷题记录(620. 有趣的电影)
- 量子计算机的系统论思考,量子计算机发展带来的思考..doc
- 文献参考文献著录规则
- 【MATLAB信号处理】连续时间信号与系统的频域分析
- everthing 打开历史记录功能
- 关于神经网络和深度学习的资料
- 创新工场王嘉平开讲:low-level的计算机视觉
- left join一对多只保留一条结果的解决方法
- 要点回顾|10 月 Pulsar 中文开发者与用户组会议
- html5页面弹窗,H5页面怎么设置弹窗
- 如何有效提高生产车间的生产效率呢?
- org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing
- Android框架排行榜,上百项资源汇总不容错过
- 拼多多市值再次超越京东:进攻才是最好的防守!
- 项目场景:jetson nano conda Illegal instruction (core dumped)
热门文章
- 趣学 C 语言(十二)—— 文件操作
- Tricks(三十八)—— 在不计算欧式距离的前提下判断点到两点的距离哪个更近
- Python 基础——random模块
- php的两种会话技术是,php会话技术主要包含哪些
- java 实现根据ip重定向_从0到1用java再造tcpip协议栈:代码实现ping应用功能1
- python装饰器测试_python 装饰器
- python文本框与数据库的关联_Python 基于python+mysql浅谈redis缓存设计与数据库关联数据处理...
- python怎么读取csv文件-Python读取csv文件(详解版,看了无师自通)
- 编程语言python入门-【python】编程语言入门经典100例--19
- 快准狠才叫爽!六款智能电视语音识别大比拼