Linux下php判断字符串编码
来源:互联网 发布:乐乎城市青年公寓 编辑:程序博客网 时间:2024/06/09 20:09
From:purple尘
本意是判断文件内容的编码的,以下内容仅针对linux环境:
在网上搜了半天再加上参考php手册、暂时了解到:
1、函数 mb_detect_encoding() 可以检测编码。这个函数最后一个参数为布尔型,true的话会进行严格的检测,需要安装扩展:mbstring.so。
安装后再试下。
2、手册中写的,如果没有mb_detect_encoding了可以用下方所示代码进行检测,依赖的是icnov函数、这个函数也可以用mb_convert_encoding替换。
两者是有区别的,后者貌似比前者靠谱、但是效率要慢,再具体就不太清楚了、感兴趣的可以去翻源码了。
最下方是手册原话。
3、手册中这样使用iconv的原理不太清楚,暂时猜测:针对字符的解码与编码、只有当编码格式正确的时候、才是可逆的,具体是这样子:
如果字符串是gbk编码的,那么用gbk对字符串进行解码再编码没问题;但是针对这个字符串用utf-8进行解码再编码的话就出事儿了、二进制的字节流会有变化,也就产生了损伤。
if the function " mb_detect_encoding" does not exist ...
... try: <?php
// ----------------------------------------------------
if ( !function_exists('mb_detect_encoding') ) {
// ----------------------------------------------------------------
function mb_detect_encoding ($string, $enc=null, $ret=null) {
static $enclist = array(
'UTF-8', 'ASCII',
'ISO-8859-1', 'ISO-8859-2', 'ISO-8859-3', 'ISO-8859-4', 'ISO-8859-5',
'ISO-8859-6', 'ISO-8859-7', 'ISO-8859-8', 'ISO-8859-9', 'ISO-8859-10',
'ISO-8859-13', 'ISO-8859-14', 'ISO-8859-15', 'ISO-8859-16',
'Windows-1251', 'Windows-1252', 'Windows-1254',
);
$result = false;
foreach ($enclist as $item) {
$sample = iconv($item, $item, $string);
if (md5($sample) == md5($string)) {
if ($ret === NULL) { $result = $item; } else { $result = true; }
break;
}
}
return $result;
}
// ----------------------------------------------------------------
}
// ----------------------------------------------------
?>
- Linux下php判断字符串编码
- php 字符串 base64编码判断
- php判断 获取字符串的编码类型
- Linux 下判断空白字符串
- Linux 下判断空白字符串
- PHP在GB2312编码下截断字符串
- php判断字符串编码是否为utf8的函数
- PHP判断字符串编码是否utf8并转换的方法
- PHP判断字符串编码是否utf8并转换的方法
- PHP判断字符串编码是否utf8并转换的方法
- php如何判断一个字符串是不是base64编码
- PHP 判断字符串是否符合指定格式编码-mb_check_encoding
- PHP自动判断字符串是gb2312还是utf8编码
- 判断字符串的编码
- python字符串编码判断
- java判断字符串编码
- 判断字符串编码类型
- 判断字符串编码类型
- lca
- vector的使用,以及编程习惯
- java基本I/O系列--ByteArrayInputStream 介绍
- LeetCode-Add Digits-解题报告
- Excel与VS连接之—BasicExcel类
- Linux下php判断字符串编码
- iOS动画技术——CoreAnimation框架之图层
- pat(B) 1018. 锤子剪刀布
- jQuery图片特效脚本prettyPhoto简介
- Java Web应用目录结构
- 读取matlab某个路径下的“.mat”文件,改变文件中的内容,并以原名字,变量保存
- intent
- OI本月刷水记录
- 搜索框制作