`

使用 mb_detect_encoding() 函数来判断字符串是什么编码的。

阅读更多

原理:

使用 mb_detect_encoding() 函数来判断字符串是什么编码的。

注意:要把php.ini中 extension=php_mbstring.dll 前的;号去掉,重启apache就可以了。

我创建三个文件:text1.txt  text2.txt text3.txt

分别以ASCII UTF-8 UNICODE 的编码方式保存

代码如下:

 

 

<?php
define ('UTF32_BIG_ENDIAN_BOM'   , chr(0x00) . chr(0x00) . chr(0xFE) . chr(0xFF));
define ('UTF32_LITTLE_ENDIAN_BOM', chr(0xFF) . chr(0xFE) . chr(0x00) . chr(0x00));
define ('UTF16_BIG_ENDIAN_BOM'   , chr(0xFE) . chr(0xFF));
define ('UTF16_LITTLE_ENDIAN_BOM', chr(0xFF) . chr(0xFE));
define ('UTF8_BOM'               , chr(0xEF) . chr(0xBB) . chr(0xBF));

function detect_utf_encoding($text) {
    $first2 = substr($text, 0, 2);
    $first3 = substr($text, 0, 3);
    $first4 = substr($text, 0, 3);
  
    if ($first3 == UTF8_BOM) return 'UTF-8';
    elseif ($first4 == UTF32_BIG_ENDIAN_BOM) return 'UTF-32BE';
    elseif ($first4 == UTF32_LITTLE_ENDIAN_BOM) return 'UTF-32LE';
    elseif ($first2 == UTF16_BIG_ENDIAN_BOM) return 'UTF-16BE';
    elseif ($first2 == UTF16_LITTLE_ENDIAN_BOM) return 'UTF-16LE';
}
function getFileEncoding($str){
    $encoding=mb_detect_encoding($str);
    if(empty($encoding)){
        $encoding=detect_utf_encoding($str);
    }
    return $encoding;
}
$file = 'text1.txt';
echo getFileEncoding(file_get_contents($file));  // 输出ASCII
echo '<br />';

$file = 'text2.txt';
echo getFileEncoding(file_get_contents($file));  // 输出UTF-8
echo '<br />';
$file = 'text3.txt';
echo getFileEncoding(file_get_contents($file));  // 输出UTF-16LE
echo '<br />';
?>

 

转载于:  http://www.iteye.com/topic/565929

 

分享到:
评论

相关推荐

    php自动获取字符串编码函数mb_detect_encoding

    本文将详细探讨如何使用PHP内置函数`mb_detect_encoding()`自动获取字符串编码,并讨论在实际应用中可能会遇到的一些问题和解决方案。 首先,`mb_detect_encoding()`函数是用来检测字符串的编码的,它能够返回字符...

    详解PHP中的mb_detect_encoding函数使用方法

    php中可以使用 mb_detect_encoding() 函数来判断字符串是什么编码的。 当在php中使用mb_detect_encoding函数进行编码识别时,很多人都碰到过识别编码有误的问题,例如对与GB2312和UTF-8,或者UTF-8和GBK(这里主要是...

    php下检测字符串是否是utf8编码的代码

    在PHP中,判断字符串是否为UTF-8编码是一个常见的需求,尤其是在处理国际化网站或应用程序时。UTF-8是互联网上使用最广泛的Unicode字符编码,它支持世界上大多数语言的字符。在PHP中,有多种方法可以检测字符串是否...

    php 判断网页是否是utf8编码的方法

    `mb_detect_encoding` 是PHP提供的一种用于检测字符串编码的函数,可以帮助我们识别字符串的编码格式。下面我们将详细讨论如何使用PHP和`mb_detect_encoding`来判断网页是否是UTF-8编码,并进行相应的转换。 首先,...

    PHP网站编程技术-字符串处理.doc

    如果是字符串,则利用`mb_detect_encoding()`检测字符串的编码格式,然后使用内置函数`strrev()`实现字符串翻转。如果输入的参数非字符串,函数会给出相应提示。 在处理字符串数组的过程中,使用`mb_strlen()`计算...

    PHP学习笔记之字符串编码的转换和判断

    但 iconv 只能解决编码预先知道的情况,如果字符串编码未知,则需要先探测其编码,这时可能会用到 mb_string 扩展库: 复制代码 代码如下:mb_detect_encoding(‘软件开发网’); 可是 mb_detect_encoding 存在一个...

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

    第二个函数 `mb_is_utf8` 是利用PHP内置的`mb_detect_encoding`函数来判断字符串是否为UTF-8编码。这个函数可以检测多种编码格式,并允许开发者指定字符编码的优先级列表。在本例中,它被简化为只检测UTF-8编码。当...

    PHP检测字符串是否为UTF8编码的常用方法

    检测字符串编码可以有很多种方法,如利用ord获得字符的进制然后进入判断,或利用mb_detect_encoding函数来处理,下面整理了四种常用方法供大家参考。 例子1 复制代码 代码如下:/** * 检测字符串是否为UTF8编码 * @...

    自己写了一个php检测文件编码的函数

    该函数首先调用`detect_encoding`找出文件的原始编码,然后使用`mb_convert_encoding`将内容转换为目标编码(默认为UTF-8)。同样,如果检测失败,函数将返回空字符串。 这两个函数的设计思路是基于文件内容的字节...

    php字符编码转换之gb2312转为utf8

    `mb_detect_encoding`函数用于检测字符串的当前编码,但需要注意,这个函数并不总是100%准确,可能需要结合其他手段进行判断。在某些情况下,如果知道原始编码,使用`iconv`更为高效,否则可以依赖`mb_convert_...

    PHP字符串的编码问题的详细介绍

    如果不确定字符串的编码,可以使用mb_detect_encoding函数来检测字符串的编码格式。此外,ord函数可以获取字符串第一个字符的ASCII码值,通过这一方式可以判断该字符是否为汉字,因为一些编码(如GB2312)中一个汉字...

    php自动识别文字编码并转换为目标编码的方法

    因此,通过编写符合UTF-8编码规则的正则表达式,我们可以用来判断字符串是否为UTF-8编码。 一旦判断出字符串的编码类型,就可以使用mb_convert_encoding函数来执行编码转换操作。mb_convert_encoding函数是PHP多...

    php检测文件编码的方法示例

    如果原始文件的编码与期望的编码不一致,函数将使用`mb_convert_encoding`根据检测到的编码来转换内容。 文章还提到了BOM(Byte Order Mark)作为文件编码的判断依据,但作者认为这种方法并不靠谱。BOM是一个或多个...

    PHP自定义函数猎取搜索引擎来源关键字的方法_.docx

    考虑到关键字可能采用不同的编码格式,这里使用`mb_detect_encoding`检测其编码类型,并使用`iconv`进行编码转换,以确保最终提取的关键字为UTF-8编码。 ### 3. 函数测试 在文档中提供了测试样例,用于验证`...

    php简单判断文本编码的方法

    为了提高判断的准确性,可以考虑结合其他方法,如`mb_detect_encoding`函数,它提供了更丰富的编码检测选项。 总之,PHP中的文本编码判断是一个复杂的过程,但通过`iconv`函数可以实现基本的检测。在实际开发中,...

    PHP各种验证

    例如,`mb_detect_encoding()`函数可以检测字符串中的字符编码,如果包含中文字符,这个函数会返回`'GB2312'`, `'GBK'`, `'Big5'`或`'UTF-8'`等表示中文编码的值。 2. **算术问题验证**: 为了增加安全性,一些...

Global site tag (gtag.js) - Google Analytics