关于文件编码的检测,很多人建议 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检测文件编码的方法示例相关推荐

  1. Python编程笔记(第三篇)【补充】三元运算、文件处理、检测文件编码、递归、斐波那契数列、名称空间、作用域、生成器...

    一.三元运算 三元运算又称三目运算,是对简单的条件语句的简写,如: 简单条件处理: if 条件成立:val = 1else:val = 2 改成三元运算 val = 1 if 条件成立 else 2 ...

  2. 根据文件数据,检测文件类型

    这个函数,我会一直扩充下去.很多资料是网上查的,有自己分析的,当然肯定有bug. 目前头疼的是mp3格式的检测,有的mp3文件前面有一些空白,而且长度不固定. iso的鉴定方式貌似不对,我电脑上的几个 ...

  3. 【100个 Unity实用技能】☀️ | Unity读取本地文件(Json,txt等)的三种方法示例

    Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 . 包括游戏开发.美术.建筑.汽车设计.影视在内的所有创作者,借助 Unity 将创意 ...

  4. 关于ADPCM编码和PCM编码的wave文件通过Java进行相互转换

    关于ADPCM编码和PCM编码的.wav文件通过Java进行相互转换 最近在做一个呼叫器的项目,中间碰到了点问题,就是呼叫器那边传过来的数据是ADPCM编码格式的,经过程序转换成.wav文件后可以在播 ...

  5. 【Visual Studio】使用Unicode(UTF-8)编码加载文件xxx时,有些字节已用Unicode替换字符替换。保存该文件将不会保留原始文件内容

    原文链接 VS2013(VS2019同样适用)偶遇这种情况,页面汉字编码出现乱码.  .... 按照网上查到的:   工具>选项>文本编辑器> 勾选了  然并卵,还是乱码... 其实 ...

  6. java 读取流的字符编码格式_如何使用Java代码获取文件、文件流或字符串的编码方式...

    标签: 今天通过网络资源研究了一下如何使用Java代码获取文件.文件流或字符串的编码方式,现将代码与大家分享: package com.ghj.packageoftool; import info.m ...

  7. 解决Excel打开UTF-8编码的CSV文件乱码的问题 实测好用

    解决Excel打开UTF-8编码的CSV文件乱码的问题 1 2 3 4 5 6 分步阅读 CSV是一个平面文件,它的编码方式有多种.比如,MongoDB以UTF-8格式存储数据,在使用mongoexp ...

  8. wps保存的csv文件是什么编码的_Python文件读写详解.md

    open函数参数解析 mode 打开模式 buffering 缓冲区 什么是缓冲区? 如何查看系统默认缓冲区大小? 为什么默认缓冲区是4K? 测试缓冲区 如何修改缓冲区? encoding 编码格式 ...

  9. pugixml读取unicode编码的xml文件的做法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 实际上在多字节编码的情况下,即以记事本打开显示的ANSI编码的,如下图: pugixml是可以直接读取中文字符的,示例 ...

最新文章

  1. Spring中jdbcTemplate的用法实例
  2. Eclipse中安装HibernateTools插件
  3. 定时发布任务,在global.asax中获取文件的物理路径的方法
  4. 提取过程_大米多肽提取过程中如何应用膜分离技术呢?
  5. Web 应用客户端渲染和服务器端渲染的比较
  6. 1、mybatis是什么?为什么要用mybatis?
  7. 信息学奥赛一本通 1130:找第一个只出现一次的字符 | OpenJudge NOI 1.7 02
  8. iOS推送群发的问题,PushSharp作者的这篇讲得最详细了
  9. mac qt编译出现问题的解决方法
  10. ToString截取字符串的用法
  11. oracle中取得当前日期,前一天,当前月,前一个月
  12. python爬虫爬取豆瓣电影为啥内容有缺失-Python爬虫之抓取豆瓣影评数据
  13. 几个创业小故事的启示
  14. 微软Win10彻底封杀exFAT/FAT32磁盘,格式化只剩NTFS/REFS
  15. Markdown排版微信公众号文章
  16. QSFP28 LR4单模光模块与其它100G光模块有什么区别
  17. 浅谈产业界与学术界的合作研究
  18. 随笔小记-广告拦截,卸载猎豹后,仍然弹出广告
  19. 所有网站都通用的自定义弹出框alert
  20. 144显示器只有60_144Hz显示器为什么只跑60Hz?这几个原因很关键!

热门文章

  1. [转]TortoiseSVN客户端重新设置用户名和密码
  2. unity, 颜色随高度渐变shader
  3. 额,你在main.xml中加了一个id以后,要右键点save,才会将这个id加入到R中,否则是没有的。。。R里的东西是程序自动生成的~~~...
  4. Lunx运维监控_shark巨菜_基础篇
  5. 预见2019:《2019年中国视频监控产业全景图谱》(附产业布局、政策环境、市场规模、发展趋势)
  6. DM368 Uboot
  7. Pytorch基础(八)——正则化
  8. 深度学习之pytorch(三) C++调用
  9. python异步_Python通过Thread实现异步
  10. conda环境管理介绍