判断字符串是否UTF8编码
来源:互联网 发布:demo演示软件 编辑:程序博客网 时间:2024/06/05 11:03
int IsTextUTF8(char* str,ULONGLONG length)
{
int i;
DWORD nBytes=0;//UFT8可用1-6个字节编码,ASCII用一个字节
UCHAR chr;
BOOL bAllAscii=TRUE; //如果全部都是ASCII, 说明不是UTF-8
for(i=0;i<length;i++)
{
chr= *(str+i);
if( (chr&0x80) != 0 ) // 判断是否ASCII编码,如果不是,说明有可能是UTF-8,ASCII用7位编码,但用一个字节存,最高位标记为0,o0xxxxxxx
bAllAscii= FALSE;
if(nBytes==0) //如果不是ASCII码,应该是多字节符,计算字节数
{
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 FALSE;
}
nBytes--;
}
}
else //多字节符的非首字节,应为 10xxxxxx
{
if( (chr&0xC0) != 0x80 )
{
return FALSE;
}
nBytes--;
}
}
if( nBytes > 0 ) //违返规则
{
return FALSE;
}
if( bAllAscii ) //如果全部都是ASCII, 说明不是UTF-8
{
return FALSE;
}
return TRUE;
}
{
int i;
DWORD nBytes=0;//UFT8可用1-6个字节编码,ASCII用一个字节
UCHAR chr;
BOOL bAllAscii=TRUE; //如果全部都是ASCII, 说明不是UTF-8
for(i=0;i<length;i++)
{
chr= *(str+i);
if( (chr&0x80) != 0 ) // 判断是否ASCII编码,如果不是,说明有可能是UTF-8,ASCII用7位编码,但用一个字节存,最高位标记为0,o0xxxxxxx
bAllAscii= FALSE;
if(nBytes==0) //如果不是ASCII码,应该是多字节符,计算字节数
{
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 FALSE;
}
nBytes--;
}
}
else //多字节符的非首字节,应为 10xxxxxx
{
if( (chr&0xC0) != 0x80 )
{
return FALSE;
}
nBytes--;
}
}
if( nBytes > 0 ) //违返规则
{
return FALSE;
}
if( bAllAscii ) //如果全部都是ASCII, 说明不是UTF-8
{
return FALSE;
}
return TRUE;
}
- 判断字符串是否UTF8编码
- C++实例:判断字符串是否UTF8编码
- 字符串编码是否UTF8
- php判断字符串编码是否为utf8的函数
- vc 如何判断一个字符串是否是UTF8编码
- PHP判断字符串编码是否utf8并转换的方法
- (转)如何判断一个字符串是否是UTF8编码
- PHP判断字符串编码是否utf8并转换的方法
- PHP判断字符串编码是否utf8并转换的方法
- vc 如何判断一个字符串是否是UTF8编码
- 判断是否utf8编码的算法
- java判断文件是否是utf8编码
- 判断char*是否为utf8编码
- php 检查字符串是否为UTF8编码
- 检查字符串是否是UTF8编码
- 判断字符串的编码类型(GBK / UTF8)
- 判断字符串的编码类型(GBK / UTF8)
- 判断字符串是UTF8编码还是GBK编码
- HDU 1272 小希的迷宫 + 1325 Is It A Tree? , 并查集
- 7月13日早上总结------虚拟操作系统的安装问题
- 关于链表追赶--链表中环的问题
- Ubuntu/Debian用户 可以用make-kpkg简化系统内核编译过
- VisionMobile:2012年全球移动开发者调查
- 判断字符串是否UTF8编码
- 分析stl function objects模块
- C函数调用
- 异常
- 各类数据库,查询指定函数数据,查前几行
- jquery层拖拽效果的实现方法
- WebKit 分析–for android
- 鼠标放td边线上可以调整宽度
- 学习笔记(7):C程序设计(第四版)谭浩强著_第十章~第十一章