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

}

相关推荐
anlog3 小时前
ini文件读取,EXE同目录文件读取
c#·ini
rockey6274 小时前
AScript之编译递归函数
c#·.net·script·动态脚本
yue00810 小时前
winform控件篇-按钮
c#
DevOpenClub14 小时前
Markdown、HTML 和 PPT 如何稳定交付:文档转换任务的幂等发布流程
开发语言·前端·c#·html·powerpoint
软件黑马王子15 小时前
3.单例模式问题1:构造函数
开发语言·单例模式·c#
软件黑马王子15 小时前
4.单例模式问题2:重复挂载
开发语言·单例模式·c#
夏霞17 小时前
c# 不支持的目标框架 解决方案
开发语言·c#
软件黑马王子17 小时前
5.单例模式问题3:多线程问题
单例模式·前端框架·c#
geovindu17 小时前
CSharp: Template Method Pattern
开发语言·后端·c#·.net·模板方法模式·行为模式
CSDN_RTKLIB17 小时前
SetImpliedSelection
c#