utf8编码检测方法分享

Elaine ·
更新时间:2024-09-21
· 706 次阅读

代码如下:
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;
        }

您可能感兴趣的文章:Oracle将字符编码从GBK转到UTF8,如何操作比较稳妥?php字符编码转换之gb2312转为utf8PHP截断标题且兼容utf8和gb2312编码JoshChen_web格式编码UTF8-无BOM的小细节分析js 编码转换 gb2312 和 utf8 互转的2种方法基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)MySql修改数据库编码为UTF8避免造成乱码问题PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码php验证手机号码(支持归属地查询及编码为UTF8)查看修改mysql编码方式让它支持中文(gbk或者utf8)真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )多种语言(big5\gbk\gb2312\utf8\Shift_JIS\iso8859-1)的网页编码切换解决方案归纳Mysql数据库编码问题 (修改数据库,表,字段编码为utf8)ASP关于编码的几个有用的函数小结(utf8)XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)PHP UTF8编码内的繁简转换类UTF8编码内的繁简转换的PHP类PHP 截取字符串 分别适合GB2312和UTF8编码情况



编码 检测方法 方法 utf8

需要 登录 后方可回复, 如果你还没有账号请 注册新账号