utf8编码检测方法分享

 更新时间:2014年02月25日 14:27:16   作者:  
这篇文章主要介绍了utf8编码检测方法示例,需要的朋友可以参考下

复制代码 代码如下:

public bool isUtf8(byte[] rawText)
        {
            bool result = true;

            if (rawText == null)
            {
                return !result;
            }

            int pos = 0;
            while (pos < rawText.Length && result)
            {
                if ((rawText[pos] & 0x7F) == rawText[pos])
                {
                    pos++;
                }
                else
                {
                    int bitLen = 7;

                    while (((rawText[pos] >> bitLen) & 0x01) == 1 && bitLen > 0)
                    {
                        bitLen--;
                    }

                    int byteCount = 7 - bitLen;

                    if (byteCount > 1 && byteCount < 7)
                    {
                        for (int i = 1; i < byteCount; ++i)
                        {
                            if (pos + i >= rawText.Length || (rawText[pos + i] & 0xBF) != rawText[pos + i])
                            {
                                result = false;
                                break;
                            }
                        }

                        pos += byteCount;
                    }
                    else
                    {
                        result = false;
                    }
                }
            }

            return result;
        }

相关文章

  • C#自定义针对URL地址的处理类实例

    C#自定义针对URL地址的处理类实例

    这篇文章主要介绍了C#自定义针对URL地址的处理类,实例分析了C#解析URL地址实现URl参数加密解密及参数解析的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • C# .Net实现灰度图和HeatMap热力图winform(进阶)

    C# .Net实现灰度图和HeatMap热力图winform(进阶)

    本文主要介绍了C# .NET实现简易灰度图和酷炫HeatMap热力图winform,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • c#使用简单工厂模式实现生成html文件的封装类分享

    c#使用简单工厂模式实现生成html文件的封装类分享

    这篇文章主要介绍了运用了简单工厂模式实现页面静态化封装类,思路比较简单,大家可根据自己的思路再扩展此类
    2014-01-01
  • C#基于时间轮调度实现延迟任务详解

    C#基于时间轮调度实现延迟任务详解

    在很多.net开发体系中开发者在面对调度作业需求的时候一般会选择三方开源成熟的作业调度框架来满足业务需求,但是有些时候可能我们只是需要一个简易的延迟任务。本文主要分享一个简易的基于时间轮调度的延迟任务实现,需要的可以参考一下
    2022-12-12
  • C#中调用Windows API的技术要点说明

    C#中调用Windows API的技术要点说明

    本篇文章主要是对C#中调用Windows API的技术要点进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • C#键值对容器的介绍

    C#键值对容器的介绍

    C#键值对容器的介绍,需要的朋友可以参考一下
    2013-05-05
  • c#多线程网络聊天程序代码分享(服务器端和客户端)

    c#多线程网络聊天程序代码分享(服务器端和客户端)

    本程序使用VS2005 制作,程序分为三块,XuLIeHua类库下有我写的把结构序列化的类,还有就是服务器端和客户端
    2013-12-12
  • C#根据http和ftp图片地址获取对应图片

    C#根据http和ftp图片地址获取对应图片

    这篇文章主要为大家详细介绍了C#根据http和ftp图片地址获取对应图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • C#中倒序输出字符串的方法示例

    C#中倒序输出字符串的方法示例

    这篇文章主要给大家介绍了C#中倒序输出字符串的方法示例,本文中的字符串倒序指的是将“吗? 好 近 最”输出“最 近 好 吗?”,文中给出了两种方法,需要的朋友可以参考借鉴,下面来跟着小编一起学习学习吧。
    2017-01-01
  • C# 中使用NModbus4通信库执行写操作

    C# 中使用NModbus4通信库执行写操作

    在C#中NModbus4库提供了一个方便的方式来与支持Modbus协议的设备进行交互,本文就来介绍了使用NModbus4通信库执行写操作,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03

最新评论