linux c语言判断字符串是否是utf8
来源:互联网 发布:淘宝店铺的微淘在哪里 编辑:程序博客网 时间:2024/06/05 02:33
项目开发用到这个功能,记下来也分享给大家,你根据自己系统中定义一下布尔类型宏即可,直接上代码吧
nopoll_bool ras_is_text_utf8(const char* str,long length){ int i; //UFT8可用1-6个字节编码,ASCII用一个字节 int nBytes=0; unsigned char chr; //如果全部都是ASCII, 说明不是UTF-8 nopoll_bool bAllAscii=nopoll_true; for(i=0;i<length;i++) { chr= *(str+i); // 判断是否ASCII编码,如果不是,说明有可能是UTF-8,ASCII用7位编码,但用一个字节存,最高位标记为0,o0xxxxxxx if( (chr&0x80) != 0 ) { bAllAscii= nopoll_false; } //如果不是ASCII码,应该是多字节符,计算字节数 if(nBytes==0) { if(chr>=0x80) { if(chr>=0xFC&&chr<=0xFD) { nBytes=6; } else if(chr>=0xF8) { nBytes=5; } else if(chr>=0xF0) { nBytes=4; } else if(chr>=0xE0) { nBytes=3; } else if(chr>=0xC0) { nBytes=2; } else { return nopoll_false; } nBytes--; } } //多字节符的非首字节,应为 10xxxxxx else { if( (chr&0xC0) != 0x80 ) { return nopoll_false; } nBytes--; } } //违返规则 if( nBytes > 0 ) { return nopoll_false; } //如果全部都是ASCII, 也是字符串 if( bAllAscii ) { return nopoll_true; } return nopoll_true;}
0 0
- linux c语言判断字符串是否是utf8
- 【C语言】判断字符串是否是回文
- vc 如何判断一个字符串是否是UTF8编码
- (转)如何判断一个字符串是否是UTF8编码
- vc 如何判断一个字符串是否是UTF8编码
- 判断是否是UTF8串
- 判断字符串是否UTF8编码
- 【C语言】判断一个字符串是否是一个字符串的旋转字符串
- 【C】判断一个字符串是否是整数
- C 判断字符串是否是子集
- C语言判断一个字符串是否是另一个字符串的子串
- C语言判断输入是否是数字
- 判断是否是素数 C语言
- C语言判断字符串是否为数字
- C语言判断两个字符串是否相等
- c语言 判断两个字符串是否相等
- 字符串是否是UTF8,UTF8汉字是否被截断?
- C语言求字符串是否是回文
- 【PyQt4 实例18】获取网卡信息
- 【OpenCV】数字图像灰度直方图
- C# 扩展方法应用二:文件操作
- 可编辑下拉框实现方式2种
- mac更新系统版本后的安装包路径
- linux c语言判断字符串是否是utf8
- 第1次实验——NPC问题(回溯算法、聚类分析)
- 获取在线汇率
- 解决maven仓库有jar包但是maven程序无法下载仓库jar包
- IE、FF兼容 iframe 截取页面某坐标的内容
- 拷贝构造函数的几个细节
- android NDk初步学习以及某些小问题的解决方法备忘 一
- OpenCV(一) 安装配置篇 opencv2.49以及vs2010及其以上版本
- Sie Instant Messenger FIFA 14 Coins kaufen