判读文本编码是否为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 天前
告别 throw exception!为什么 Result<T> 才是业务逻辑的正确选择
c#·.net
海底星光1 天前
c# 生产者消费者模式之内存/redis队列实现
redis·c#
kylezhao20191 天前
C# 中实现自定义的窗口最大化、最小化和关闭按钮
开发语言·c#
月巴月巴白勺合鸟月半2 天前
PDF转图片的另外一种方法
pdf·c#
m5655bj2 天前
使用 C# 对比两个 PDF 文档的差异
pdf·c#·visual studio
Never_Satisfied2 天前
C#插值字符串中大括号表示方法
前端·c#
wy3136228212 天前
C#——意框架(结构说明)
前端·javascript·c#
kylezhao20192 天前
C# 各种类型转换深入剖析
开发语言·c#
xb11322 天前
Winform控件样式
c#
作孽就得先起床2 天前
unity webGL导出.glb模型
unity·c#·游戏引擎·webgl