判读文本编码是否为UTF8

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

private bool IsUtf8(byte\[\] buff)

{

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

{

if ((buffi & 0xE0) == 0xC0) // 110x xxxx 10xx xxxx

{

if ((buffi + 1 & 0x80) != 0x80)

{

return false;

}

}

else if ((buffi & 0xF0) == 0xE0) // 1110 xxxx 10xx xxxx 10xx xxxx

{

if ((buffi + 1 & 0x80) != 0x80 || (buffi + 2 & 0x80) != 0x80)

{

return false;

}

}

else if ((buffi & 0xF8) == 0xF0) // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx

{

if ((buffi + 1 & 0x80) != 0x80 || (buffi + 2 & 0x80) != 0x80 || (buffi + 3 & 0x80) != 0x80)

{

return false;

}

}

}

return true;

}

相关推荐
EIP低代码平台6 小时前
EIP 低代码平台 - 角色维护
低代码·c#·权限·工作流·netcore
心平气和量大福大11 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf
-银雾鸢尾-15 小时前
C#中HashTable相关方法
开发语言·c#
geovindu19 小时前
CSharp: Flyweight Pattern
开发语言·后端·c#·.net·享元模式·结构型模式
吴可可12319 小时前
C# CAD二次开发中如何退出窗口
c#
影寂ldy19 小时前
C# WinForm 三种自定义控件 + 完全自定义重绘控件知识点
开发语言·c#
ellis197019 小时前
C#异常相关关键字:Exceptions,throw,try,catch,finally
unity·c#
-银雾鸢尾-19 小时前
C#中的Dictionary相关方法
开发语言·c#
lzhdim20 小时前
C# 中读取CPU、硬盘和内存温度
开发语言·c#
WarPigs21 小时前
.NET项目app.Config笔记
c#·.net