php怎么查自己的文件编码,php检测文件编码的方法示例
关于文件编码的检测,很多人建议 mb_detect_encoding 检测,可是不知为何不成功,什么都没输出、看到有人写了个增强版,用 BOM 判断的,我果断就无视了,这东西完全不靠谱、最终根据PHP手册里 mb_detect_encoding 函数下方的例子,自己写了一个检测函数,
还包括自动检测编码并按指点编码读取文件的函数、源码献上。
例子,php检测文件编码。
复制代码 代码示例:
/**
* 检测文件编码
* @param string $file 文件路径
* @return string|null 返回 编码名 或 null
*/ www.jbxue.com
function detect_encoding($file) {
$list = array('GBK', 'UTF-8', 'UTF-16LE', 'UTF-16BE', 'ISO-8859-1');
$str = file_get_contents($file);
foreach ($list as $item) {
$tmp = mb_convert_encoding($str, $item, $item);
if (md5($tmp) == md5($str)) {
return $item;
}
}
return null;
}
/**
* 自动解析编码读入文件
* @param string $file 文件路径
* @param string $charset 读取编码
* @return string 返回读取内容
*/
function auto_read($file, $charset='UTF-8') {
$list = array('GBK', 'UTF-8', 'UTF-16LE', 'UTF-16BE', 'ISO-8859-1');
$str = file_get_contents($file);
foreach ($list as $item) {
$tmp = mb_convert_encoding($str, $item, $item);
if (md5($tmp) == md5($str)) {
return mb_convert_encoding($str, $charset, $item);
}
}
return "";
}
php怎么查自己的文件编码,php检测文件编码的方法示例相关推荐
- Python编程笔记(第三篇)【补充】三元运算、文件处理、检测文件编码、递归、斐波那契数列、名称空间、作用域、生成器...
一.三元运算 三元运算又称三目运算,是对简单的条件语句的简写,如: 简单条件处理: if 条件成立:val = 1else:val = 2 改成三元运算 val = 1 if 条件成立 else 2 ...
- 根据文件数据,检测文件类型
这个函数,我会一直扩充下去.很多资料是网上查的,有自己分析的,当然肯定有bug. 目前头疼的是mp3格式的检测,有的mp3文件前面有一些空白,而且长度不固定. iso的鉴定方式貌似不对,我电脑上的几个 ...
- 【100个 Unity实用技能】☀️ | Unity读取本地文件(Json,txt等)的三种方法示例
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 . 包括游戏开发.美术.建筑.汽车设计.影视在内的所有创作者,借助 Unity 将创意 ...
- 关于ADPCM编码和PCM编码的wave文件通过Java进行相互转换
关于ADPCM编码和PCM编码的.wav文件通过Java进行相互转换 最近在做一个呼叫器的项目,中间碰到了点问题,就是呼叫器那边传过来的数据是ADPCM编码格式的,经过程序转换成.wav文件后可以在播 ...
- 【Visual Studio】使用Unicode(UTF-8)编码加载文件xxx时,有些字节已用Unicode替换字符替换。保存该文件将不会保留原始文件内容
原文链接 VS2013(VS2019同样适用)偶遇这种情况,页面汉字编码出现乱码. .... 按照网上查到的: 工具>选项>文本编辑器> 勾选了 然并卵,还是乱码... 其实 ...
- java 读取流的字符编码格式_如何使用Java代码获取文件、文件流或字符串的编码方式...
标签: 今天通过网络资源研究了一下如何使用Java代码获取文件.文件流或字符串的编码方式,现将代码与大家分享: package com.ghj.packageoftool; import info.m ...
- 解决Excel打开UTF-8编码的CSV文件乱码的问题 实测好用
解决Excel打开UTF-8编码的CSV文件乱码的问题 1 2 3 4 5 6 分步阅读 CSV是一个平面文件,它的编码方式有多种.比如,MongoDB以UTF-8格式存储数据,在使用mongoexp ...
- wps保存的csv文件是什么编码的_Python文件读写详解.md
open函数参数解析 mode 打开模式 buffering 缓冲区 什么是缓冲区? 如何查看系统默认缓冲区大小? 为什么默认缓冲区是4K? 测试缓冲区 如何修改缓冲区? encoding 编码格式 ...
- pugixml读取unicode编码的xml文件的做法
作者:朱金灿 来源:http://blog.csdn.net/clever101 实际上在多字节编码的情况下,即以记事本打开显示的ANSI编码的,如下图: pugixml是可以直接读取中文字符的,示例 ...
最新文章
- Spring中jdbcTemplate的用法实例
- Eclipse中安装HibernateTools插件
- 定时发布任务,在global.asax中获取文件的物理路径的方法
- 提取过程_大米多肽提取过程中如何应用膜分离技术呢?
- Web 应用客户端渲染和服务器端渲染的比较
- 1、mybatis是什么?为什么要用mybatis?
- 信息学奥赛一本通 1130:找第一个只出现一次的字符 | OpenJudge NOI 1.7 02
- iOS推送群发的问题,PushSharp作者的这篇讲得最详细了
- mac qt编译出现问题的解决方法
- ToString截取字符串的用法
- oracle中取得当前日期,前一天,当前月,前一个月
- python爬虫爬取豆瓣电影为啥内容有缺失-Python爬虫之抓取豆瓣影评数据
- 几个创业小故事的启示
- 微软Win10彻底封杀exFAT/FAT32磁盘,格式化只剩NTFS/REFS
- Markdown排版微信公众号文章
- QSFP28 LR4单模光模块与其它100G光模块有什么区别
- 浅谈产业界与学术界的合作研究
- 随笔小记-广告拦截,卸载猎豹后,仍然弹出广告
- 所有网站都通用的自定义弹出框alert
- 144显示器只有60_144Hz显示器为什么只跑60Hz?这几个原因很关键!
热门文章
- [转]TortoiseSVN客户端重新设置用户名和密码
- unity, 颜色随高度渐变shader
- 额,你在main.xml中加了一个id以后,要右键点save,才会将这个id加入到R中,否则是没有的。。。R里的东西是程序自动生成的~~~...
- Lunx运维监控_shark巨菜_基础篇
- 预见2019:《2019年中国视频监控产业全景图谱》(附产业布局、政策环境、市场规模、发展趋势)
- DM368 Uboot
- Pytorch基础(八)——正则化
- 深度学习之pytorch(三) C++调用
- python异步_Python通过Thread实现异步
- conda环境管理介绍