PHP读取文件或采集时解决中文乱码


Posted in PHP onMarch 09, 2021

尝试一:

$str = iconv("GBK", "utf-8", $str);

尝试二:

$str = mb_convert_encoding($str, "UTF-8", "GBK");

尝试三:

$text = file_get_contents($filePath);
//$encodType = mb_detect_encoding($text);
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));
$first2 = substr($text, 0, 2);
$first3 = substr($text, 0, 3);
$first4 = substr($text, 0, 3);
$encodType = "";
if ($first3 == UTF8_BOM)
  $encodType = 'UTF-8 BOM';
else if ($first4 == UTF32_BIG_ENDIAN_BOM)
  $encodType = 'UTF-32BE';
else if ($first4 == UTF32_LITTLE_ENDIAN_BOM)
  $encodType = 'UTF-32LE';
else if ($first2 == UTF16_BIG_ENDIAN_BOM)
  $encodType = 'UTF-16BE';
else if ($first2 == UTF16_LITTLE_ENDIAN_BOM)
  $encodType = 'UTF-16LE';
//下面的判断主要还是判断ANSI编码的·
if ($encodType == '') {//即默认创建的txt文本-ANSI编码的
  $content = iconv("GBK", "UTF-8", $text);
} else if ($encodType == 'UTF-8 BOM') {//本来就是UTF-8不用转换
  $content = $text;
} else {//其他的格式都转化为UTF-8就可以了
  $content = iconv($encodType, "UTF-8", $text);
}
PHP 相关文章推荐
一些PHP写的小东西
Dec 06 PHP
同台服务器使用缓存APC效率高于Memcached的演示代码
Feb 16 PHP
延长phpmyadmin登录时间的方法
Feb 06 PHP
在Win7 中为php扩展配置Xcache
Oct 08 PHP
PHP中通过fopen()函数访问远程文件示例
Nov 18 PHP
smarty模板引擎从php中获取数据的方法
Jan 22 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
Feb 03 PHP
PHP实现HTTP断点续传的方法
Jun 17 PHP
学习php设计模式 php实现模板方法模式
Dec 08 PHP
thinkphp框架实现删除和批量删除
Jun 29 PHP
Thinkphp5结合layer弹窗定制操作结果页面
Jul 07 PHP
PHP命名空间用法实例分析
Sep 04 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
Mar 09 #PHP
PHP7 windows支持
Mar 09 #PHP
PHP7 新增常量
Mar 09 #PHP
PHP7移除的扩展和SAPI
Mar 09 #PHP
PHP7新增函数
Mar 09 #PHP
PHP7修改的函数
Mar 09 #PHP
PHP7 弃用功能
Mar 09 #PHP
You might like
PHP VS ASP
2006/10/09 PHP
php使用NumberFormatter格式化货币的方法
2015/03/21 PHP
PHP生成短网址方法汇总
2016/07/12 PHP
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
JS 页面计时器示例代码
2013/10/28 Javascript
js中Math之random,round,ceil,floor的用法总结
2013/12/26 Javascript
javascript中String对象的slice()方法分析
2014/12/20 Javascript
javascript解三阶幻方(九宫格)
2015/04/22 Javascript
CSS3实现动态背景登录框的代码
2015/07/28 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
html5+javascript实现简单上传的注意细节
2016/04/18 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
js实现首屏延迟加载实现方法 js实现多屏单张图片延迟加载效果
2017/07/17 Javascript
javascript 面向对象实战思想分享
2017/09/07 Javascript
AngularJS中table表格基本操作示例
2017/10/10 Javascript
vue2.0 实现富文本编辑器功能
2019/05/26 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
2019/09/28 Javascript
原生js拖拽实现图形伸缩效果
2020/02/10 Javascript
JS数组Reduce方法功能与用法实例详解
2020/04/29 Javascript
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
Python编程实现数学运算求一元二次方程的实根算法示例
2017/04/02 Python
python+opencv实现动态物体识别
2018/01/09 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
2020/08/26 Python
使用OpenCV校准鱼眼镜头的方法
2020/11/26 Python
Ubuntu20下的Django安装的方法步骤
2021/01/24 Python
Trip.com澳大利亚:在线旅行社
2019/12/01 全球购物
环境科学专业个人求职信
2013/09/26 职场文书
生物科学专业个人求职信范文
2013/12/05 职场文书
三好学生先进事迹材料
2014/08/28 职场文书
经营目标责任书
2015/05/08 职场文书
如何制定一份可行的计划!
2019/06/21 职场文书
股东合作协议书模板2篇
2019/11/05 职场文书
如何使用分区处理MySQL的亿级数据优化
2021/06/18 MySQL
详细分析PHP7与PHP5区别
2021/06/26 PHP