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

}

相关推荐
__water5 小时前
『功能项目』回调函数处理死亡【54】
c#·回调函数·unity引擎
__water5 小时前
『功能项目』眩晕图标显示【52】
c#·unity引擎·动画事件
__water5 小时前
『功能项目』第二职业法师的平A【57】
c#·unity引擎·魔法球伤害传递
__water8 小时前
『功能项目』战士的伤害型技能【45】
c#·unity引擎·战士职业伤害型技能
君莫愁。9 小时前
【Unity】检测鼠标点击位置是否有2D对象
unity·c#·游戏引擎
Lingbug9 小时前
.Net日志组件之NLog的使用和配置
后端·c#·.net·.netcore
咩咩觉主10 小时前
Unity实战案例全解析:PVZ 植物卡片状态分析
unity·c#·游戏引擎
Echo_Lee010 小时前
C#与Python脚本使用共享内存通信
开发语言·python·c#
__water17 小时前
『功能项目』QFrameWork框架重构OnGUI【63】
c#·unity引擎·重构背包框架
Crazy Struggle17 小时前
C# + WPF 音频播放器 界面优雅,体验良好
c#·wpf·音频播放器·本地播放器