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编码相关推荐

  1. c语言判断utf-8中文字符串,C语言中判断一个char*是不是utf8编码分享

    --想了解C语言中判断一个char*是不是utf8编码分享的全部内容且更多的C语言教程关注 C语言中判断一个char*是不是utf8编码 里我修改了一下, 纯ASCII编码的字符串也返回true, 因 ...

  2. java 判断字符串是否包含字母_Java中判断某一字符串是否包含数字、字母和中文...

    importjava.util.regex.Matcher;importjava.util.regex.Pattern;public classStrValidate {//纯数字 private s ...

  3. c语言ip字符串转为数组,C语言 ip地址转换为单个数字

    今天遇到一个面试测试题,如下 请写一段代码,可以将输入为"0.0.0.0"-"255.255.255.255"的字符串转换为int型整数数组. 输入:" ...

  4. C语言用字符串sex储存,C语言必须要记住的经典程序

    原标题:C语言必须要记住的经典程序 1./*判断101-200之间有多少个素数,并输出所有素数及素数的个数. 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此 ...

  5. php语言查找字符串是否存在,PHP语言查找字符串是否存在的方法

    这里整理了PHP语言查找字符串是否存在的方法,如果你想了解PHP语言查找字符串是否存在的方法,可以查看以下PHP语言查找字符串是否存在的方法详解. PHP语言查找字符串是否存在的方法一:采用in_ar ...

  6. c语言生命字符串,常见的C语言字符串操作

    原标题:常见的C语言字符串操作 #字符串倒序输出 实现逻辑,通过strlen获取字符串长度,然后通过 len/2 进行交叉赋值,这里需要注意,不需要考虑len是奇数还是偶数的问题. 如果len是奇数, ...

  7. C语言去掉字符串首尾空格,C语言实现去除字符串首尾空格

    C语言实现去除字符串首尾空格 2019年09月28日 | 萬仟网IT编程 | 我要评论 /* C语言去除字符串首尾空格,trim()函数实现 https://blog.csdn.net/u013022 ...

  8. c语言把字符串写入文件,c语言文件读写 | 按字符,按行,按块

    按字符对文件读写 fopen(char *,r+):打开文件 fputc("c",FILE *fp):把字符写到fp文件中 tempc = fgetc(FILE *fp):从fp中 ...

  9. 10-1Python学习笔记 10-2C语言学习笔记 : 在文本编辑器中新建一个文件, 写几句话来总结一下你至此学到的Python知识

    10-1 Python学习笔记 : 在文本编辑器中新建一个文件, 写几句话来总结一下你至此学到的Python知识, 其中每一行都以"In Python you can"打头. 将这 ...

最新文章

  1. c/c++基础 输入函数/流
  2. MyBatis 3 自动生成 主键 针对不同的数据库(oracle/sqlserver/mysql)
  3. 分布式面试题(含解答)
  4. Deep Image Homography Estimation
  5. 写二叉树程序时为什么总是报运行时错误_二叉树:一入递归深似海,从此offer是路人...
  6. LeetCode_database刷题记录(620. 有趣的电影)
  7. 量子计算机的系统论思考,量子计算机发展带来的思考..doc
  8. 文献参考文献著录规则
  9. 【MATLAB信号处理】连续时间信号与系统的频域分析
  10. everthing 打开历史记录功能
  11. 关于神经网络和深度学习的资料
  12. 创新工场王嘉平开讲:low-level的计算机视觉
  13. left join一对多只保留一条结果的解决方法
  14. 要点回顾|10 月 Pulsar 中文开发者与用户组会议
  15. html5页面弹窗,H5页面怎么设置弹窗
  16. 如何有效提高生产车间的生产效率呢?
  17. org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing
  18. Android框架排行榜,上百项资源汇总不容错过
  19. 拼多多市值再次超越京东:进攻才是最好的防守!
  20. 项目场景:jetson nano conda Illegal instruction (core dumped)

热门文章

  1. 趣学 C 语言(十二)—— 文件操作
  2. Tricks(三十八)—— 在不计算欧式距离的前提下判断点到两点的距离哪个更近
  3. Python 基础——random模块
  4. php的两种会话技术是,php会话技术主要包含哪些
  5. java 实现根据ip重定向_从0到1用java再造tcpip协议栈:代码实现ping应用功能1
  6. python装饰器测试_python 装饰器
  7. python文本框与数据库的关联_Python 基于python+mysql浅谈redis缓存设计与数据库关联数据处理...
  8. python怎么读取csv文件-Python读取csv文件(详解版,看了无师自通)
  9. 编程语言python入门-【python】编程语言入门经典100例--19
  10. 快准狠才叫爽!六款智能电视语音识别大比拼