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

}

相关推荐
1-1=011 小时前
C# 特性(Attribute)
c#·.net·.netcore
淡海水1 天前
10-01-互操作-C#与C++边界的内存管理
unity·c#·游戏引擎·.netcore·gc
WarPigs1 天前
C#把byte[]以十六进制打印,带分割符
c#
暴走约伯1 天前
【VFX工具链源码拆解 04】拯救丢失的绑定:Timeline 一键克隆与层级相对路径重映射算法
unity·c#·游戏引擎·硬件工程
1-1=01 天前
C# 反射
c#·.net·.netcore
步步为营DotNet1 天前
.NET 可观测性选型:Metrics、ActivitySource、EventSource 到底该用哪个
c#·.net·metrics·可观测性
吃一碗粉只付一碗钱2 天前
16-SqlSugar多库ConfigId与按实体选连接
sqlserver·c#
rockey6272 天前
AScript之字符串模板
c#·.net·script·expression·动态脚本
will_net2 天前
Redis集群部署+Redis 链接地址放入Aollo +c#项目接入Redis
redis·c#·bootstrap
BuHuaX2 天前
Lua 与 ToLua:运行机制及热更新原理
开发语言·unity·junit·c#·lua