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

}

相关推荐
张鱼小丸子_微辣4 分钟前
.Net Framework 4/C# LINQ*
c#
..活宝..2 小时前
【Emgu CV教程】11.2、Scharr边缘检测
图像处理·计算机视觉·c#·emgu cv·图像分析
yngsqq2 小时前
事件监听 ——CAD C#二次开发
c#
The Kite3 小时前
MPLAB X IDE 软件安装与卸载
ide·c#·嵌入式
张鱼小丸子_微辣6 小时前
.Net Framework 4/C# 集合和索引器
c#
布伦鸽6 小时前
C# WPF 左右布局实现学习笔记(1)
笔记·学习·c#·wpf
InCerry7 小时前
C# 模式匹配全解:原理、用法与易错点
c#
IGP97 小时前
20250606-C#知识:List排序
c#·list
老刘忙Giser7 小时前
c# List<string>.Add(s) 报错:UnsupportedOperationException
开发语言·c#
The Future is mine8 小时前
在.NET Core控制器中获取AJAX传递的Body参数
c#·.netcore