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

}

相关推荐
ajassi20009 小时前
开源 C# 快速开发(十六)数据库--sqlserver增删改查
windows·开源·c#
大飞pkz12 小时前
【设计模式】观察者模式
开发语言·观察者模式·设计模式·c#
唐青枫12 小时前
深入掌握 FluentMigrator:C#.NET 数据库迁移框架详解
c#·.net
李宥小哥13 小时前
C#基础08-面向对象
开发语言·c#
李宥小哥13 小时前
C#基础07-类与对象
服务器·数据库·c#
包达叔15 小时前
仿NewLife的XmlConfig类实现Json配置文件
c#·json·newlife
大飞pkz18 小时前
【设计模式】解释器模式
开发语言·设计模式·c#·解释器模式
敲敲敲-敲代码20 小时前
web系统(asp.net和C#)
前端·c#·asp.net
__XYZ20 小时前
Vala编程语言高级特性-弱引用和所有权
c语言·开发语言·后端·c#
大飞pkz1 天前
【设计模式】责任链模式
开发语言·设计模式·c#·责任链模式