判读文本编码是否为UTF8

(----转载-----,忘记出处了抱歉)

private bool IsUtf8(byte[] buff)

{

for (int i = 0; i < buff.Length; i++)

{

if ((buff[i] & 0xE0) == 0xC0) // 110x xxxx 10xx xxxx

{

if ((buff[i + 1] & 0x80) != 0x80)

{

return false;

}

}

else if ((buff[i] & 0xF0) == 0xE0) // 1110 xxxx 10xx xxxx 10xx xxxx

{

if ((buff[i + 1] & 0x80) != 0x80 || (buff[i + 2] & 0x80) != 0x80)

{

return false;

}

}

else if ((buff[i] & 0xF8) == 0xF0) // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx

{

if ((buff[i + 1] & 0x80) != 0x80 || (buff[i + 2] & 0x80) != 0x80 || (buff[i + 3] & 0x80) != 0x80)

{

return false;

}

}

}

return true;

}

相关推荐
电商api接口开发3 小时前
ASP.NET MVC 入门指南
c#·asp.net·mvc
我不是程序猿儿4 小时前
[C#]反射的实战应用,实际数据模拟
开发语言·c#
爱编程的鱼5 小时前
C# 结构(Struct)
开发语言·人工智能·算法·c#
是阿根6 小时前
unity使用iTextSharp生成PDF文件
unity·c#·游戏引擎
ABAP 成7 小时前
.NET Framework 4.0可用EXCEL导入至DataTable
c#
WineMonk9 小时前
C#多线程访问资源
c#
Bardb9 小时前
04-stm32的标准外设库
stm32·c#
风,停下10 小时前
C#基于Sunnyui框架和MVC模式实现用户登录管理
设计模式·c#·mvc
钢铁男儿10 小时前
C# 实战_RichTextBox选中某一行条目高亮,离开恢复
开发语言·c#
千叶真尹12 小时前
【无标题】
c#·linq