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

}

相关推荐
阿登林1 小时前
C# .NET Core中Chart图表绘制与PDF导出
c#·1024程序员节
yi碗汤园6 小时前
【一文了解】八大排序-插入排序、希尔排序
开发语言·算法·unity·c#·1024程序员节
小朩7 小时前
数据结构C语言
数据结构·c#·1024程序员节
CN.LG8 小时前
C# 企业微信机器人消息推送
c#·企业微信·1024程序员节·机器人推送
唐青枫8 小时前
C#.NET ArrayPool 深入解析:高性能内存池的实现与应用
c#·.net
张人玉9 小时前
WPF 核心概念笔记(补充示例)
c#·wpf·1024程序员节·布局控件
foundbug9999 小时前
C# 实现 Modbus TCP 通信
开发语言·tcp/ip·c#
hoiii18710 小时前
C#实现摄像头视频录制与保存
开发语言·c#·音视频
YuanlongWang10 小时前
C# 设计模式——观察者
windows·设计模式·c#
李趣趣18 小时前
数据库字段类型bit容易被忽视的bug
c#·bug