php判断字符串编码函数

mb_detect_encoding()($str);

 代码如下 复制代码

//判断字符串是什么编码
if ($tag === mb_convert_encoding(mb_convert_encoding($tag, "GB2312", "UTF-8"), "UTF-8", "GB2312")) {

}
else {//如果是gb2312 的就转换为utf8的
$tag = mb_convert_encoding($tag, 'UTF-8', 'GB2312');
}

函数可以检测编码不过使用该函数必须打开php的extension=php_mbstring.dll扩展,如果大家使用的是空间而没修改

php.ini配置文件夹的权限会不会有更好的函数来检查字符串编码呢,答应是肯定的

判断字符串是否为UTF-8编码

 代码如下 复制代码

/**
 +----------------------------------------------------------
 * 检查字符串是否是UTF8编码
 +----------------------------------------------------------
 * @param string $string 字符串
 +----------------------------------------------------------
 * @return Boolean
 +----------------------------------------------------------
 */
function is_utf8($string)
{
    return preg_match('%^(?:
         [x09x0Ax0Dx20-x7E]            # ASCII
       | [xC2-xDF][x80-xBF]             # non-overlong 2-byte
       |  xE0[xA0-xBF][x80-xBF]        # excluding overlongs
       | [xE1-xECxEExEF][x80-xBF]{2}  # straight 3-byte
       |  xED[x80-x9F][x80-xBF]        # excluding surrogates
       |  xF0[x90-xBF][x80-xBF]{2}     # planes 1-3
       | [xF1-xF3][x80-xBF]{3}          # planes 4-15
       |  xF4[x80-x8F][x80-xBF]{2}     # plane 16
   )*$%xs', $string);
}

可检查出GB2312还是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;
}

有些朋友说可以使用mb_check_encoding函数来检查,这个本人没测试过大家可自行测试哦。

时间: 2024-10-28 22:14:46

php判断字符串编码函数的相关文章

python使用chardet判断字符串编码的方法_python

本文实例讲述了python使用chardet判断字符串编码的方法.分享给大家供大家参考.具体分析如下: 最近利用python抓取一些网上的数据,遇到了编码的问题.非常头痛,总结一下用到的解决方案. linux中vim下查看文件编码的命令 set fileencoding python中一个强力的编码检测包 chardet ,使用方法非常简单.linux下利用pip install chardet实现简单安装 import chardet f = open('file','r') fencodin

php 判断字符串编码是utf-8 或gb2312实例_php实例

php 判断字符串编码是utf-8 或gb2312 第一种方法: 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 cha

escape() 字符串编码函数及其它js 编码函数

escape() 字符串编码函数及其它js 编码函数 escape(string) 定义和用法 escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串. 语法 escape(string)参数 描述 string 必需.要被转义或编码的字符串. 1:说明:所有空格.标点.重音符号以及其他非 ascii 字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数.例如,空格返回的是 "%20" .字符值大于 255 的以 "%uxxxx&quo

PHP判断字符串编码是否为utf-8的程序代码

我们以前常用mb_detect_encoding()此函数检测字符编码    代码如下 复制代码 //判断字符串是什么编码 if ($tag === mb_convert_encoding(mb_convert_encoding($tag, "GB2312", "UTF-8"), "UTF-8", "GB2312")) { } else {//如果是gb2312 的就转换为utf8的 $tag = mb_convert_enc

js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解_javascript技巧

JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数: unescape,decodeURI,decodeURIComponent . 下面简单介绍一下它们的区别 1 escape()函数 定义和用法 escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串. 语法 escape(string) 参数 描述 string 必需.要被转义或编码的字符串. 返回值 已编码的 st

JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解

转:http://www.cnblogs.com/qiantuwuliang/archive/2009/07/19/1526687.html //该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) . //其他字符(比如 :;/?:@&=+$,# var tDT_Start =$("#DT_Start").val().replace(/:/g,'|'); //将:替代为|,传到后台再转换回来var tD

php自动获取字符串编码函数mb_detect_encoding_php技巧

当在php中使用mb_detect_encoding函数进行编码识别时,很多人都碰到过识别编码有误的问题,例如对与GB2312和UTF- 8,或者UTF-8和GBK(这里主要是对于cp936的判断),网上说是由于字符短是,mb_detect_encoding会出现误判. 例如: 复制代码 代码如下: $encode = mb_detect_encoding($keytitle, array("ASCII",'UTF-8′,"GB2312′,"GBK",'B

java获取字符串编码函数

encoding.java package org.loon.test.encoding; /** *//**  * <p>  * title: loonframework  * </p>  * <p>  * description:编码基本类型集合  * </p>  * <p>  * copyright: copyright (c) 2008  * </p>  * <p>  * company: loonframewor

完美的2个php检测字符串是否是utf-8编码函数分享_php实例

在php开发中有时候会用到转码函数,比如iconv(),mb_convert_encoding()函数,在用函数转码的时候或者解码的时候我们有时候需要先判断当前字符串编码类型,不如是否是utf-8编码,是的话然后进行编码转换等操作.下面是小编整理的目前web开发中网上使用率比较高的.好的php关于UTF-8编码的判断函数,代码如下: function is_utf8($string) //函数一 { // From http://w3.org/International/questions/qa