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#/VB.NET实现PPT转换为HTML

    利用C#/VB.NET实现PPT转换为HTML

    利用PowerPoint可以很方便的呈现多媒体信息,且信息形式多媒体化,表现力强。但难免在某些情况下我们会需要将PowerPoint转换为HTML格式,本文就为大家整理了转换方法,希望对大家有所帮助
    2023-05-05
  • C#语法相比其它语言比较独特的地方(二)

    C#语法相比其它语言比较独特的地方(二)

    这篇文章主要介绍了C#语法相比其它语言比较独特的地方(二),本文讲解了internal与protected、private、enum、string的==、传引用等内容,需要的朋友可以参考下
    2015-04-04
  • 详解C#如何实现一个安全的事件订阅器

    详解C#如何实现一个安全的事件订阅器

    事件订阅器是一个对象,它订阅(或监听)某个事件,并在事件发生时执行相应的操作,本文主要介绍了C#实现一个安全的事件订阅器的相关知识,感兴趣的可以了解下
    2024-01-01
  • C# ArrayList、HashSet、HashTable、List、Dictionary的区别详解

    C# ArrayList、HashSet、HashTable、List、Dictionary的区别详解

    这篇文章主要介绍了C# ArrayList、HashSet、HashTable、List、Dictionary的区别的相关知识点内容,有需要朋友们参考下。
    2019-08-08
  • c#实现多线程局域网聊天系统

    c#实现多线程局域网聊天系统

    这篇文章主要介绍了c#实现多线程局域网聊天系统的相关代码,有此方面需求的小伙伴可以参考下。
    2015-06-06
  • 基于Unity3D实现3D照片墙效果

    基于Unity3D实现3D照片墙效果

    Unity3D不仅仅可以开发游戏,还有非常多的开发方向。本文就将用Unity3D制作出一个3D照片墙的效果,文中的示例代码讲解详细,感兴趣的可以了解一下
    2022-03-03
  • c#和javascript函数相互调用示例分享

    c#和javascript函数相互调用示例分享

    在webBrowser使用过程中为了C#和JS通讯,webBrowser必须设置ObjectForScripting的属性,它是一个object,这个object可以提供给webBrowser控件载入的网页上的script访问
    2014-01-01
  • C# pictureBox用法案例详解

    C# pictureBox用法案例详解

    这篇文章主要介绍了C# pictureBox用法案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • C#实现扫雷游戏

    C#实现扫雷游戏

    这篇文章主要为大家详细介绍了C#实现扫雷游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • C#基础概念二十五问 16-20

    C#基础概念二十五问 16-20

    C#基础概念二十五问 16-20...
    2007-04-04

最新评论