判读文本编码是否为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;

}

相关推荐
mudtools1 天前
搭建一套.net下能落地的飞书考勤系统
后端·c#·.net
玩泥巴的2 天前
搭建一套.net下能落地的飞书考勤系统
c#·.net·二次开发·飞书
唐宋元明清21882 天前
.NET 本地Db数据库-技术方案选型
windows·c#
lindexi2 天前
dotnet DirectX 通过可等待交换链降低输入渲染延迟
c#·directx·d2d·direct2d·vortice
qq_454245032 天前
基于组件与行为的树状节点系统
数据结构·c#
bugcome_com2 天前
C# 类的基础与进阶概念详解
c#
雪人不是菜鸡2 天前
简单工厂模式
开发语言·算法·c#
铸人2 天前
大数分解的Shor算法-C#
开发语言·算法·c#
未来之窗软件服务2 天前
AI人工智能(二十四)错误示范ASR张量错误C#—东方仙盟练气期
开发语言·人工智能·c#·仙盟创梦ide·东方仙盟
yong99902 天前
基于C#实现的UPnP端口映射程序
开发语言·c#