找回密码
 注册
搜索
热搜: java php web
查看: 1263|回复: 0

PHP: 判断字符串编码是GB2312还是Unicode

[复制链接]
发表于 2009-1-26 07:25:58 | 显示全部楼层 |阅读模式
// 经常遇到这种情况,需要对URL中的字符串进行解码,例如Google中搜索“编码”,"编码"会转换为
%E7%BC%96%E7%A0%81,使用的是utf-8编码

// 综合了网上搜集的资料和GB/UTF-8编码方法,判断一个中英文混杂的字符串是用GB2312/GBK编码还是UTF-8编码
// 返回: true - 含GB编码 false - 为UTF-8编码

function is_gb2312($str)
{
        for($i=0; $i<strlen($str); $i++) {
                $v = ord( $str[$i] );
                if( $v > 127) {
                        if( ($v >= 228) && ($v <= 233) )
                        {
                                if( ($i+2) >= (strlen($str) - 1)) return true;  // not enough characters
                                $v1 = ord( $str[$i+1] );
                                $v2 = ord( $str[$i+2] );
                                if( ($v1 >= 128) && ($v1 <=191) && ($v2 >=128) && ($v2 <= 191) ) // utf编码
                                        return false;

                                else
                                        return true;
                        }
                }
        }
        return true;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|软晨网(RuanChen.com)

GMT+8, 2024-11-14 12:55

Powered by Discuz! X3.5

Copyright © 2001-2023 Tencent Cloud.

快速回复 返回顶部 返回列表