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 相关文章推荐
Memcache 在PHP中的使用技巧
Feb 08 PHP
php文本转图片自动换行的方法
Mar 13 PHP
探讨GDFONTPATH能否被winxp下的php支持
Jun 21 PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
Jun 19 PHP
成为好程序员必须避免的5个坏习惯
Jul 04 PHP
ThinkPHP中URL路径访问与模块控制器之间的关系
Aug 23 PHP
PHP判断是否为空的几个函数对比
Apr 21 PHP
PHP 极验验证码实例讲解
Sep 29 PHP
php正则修正符用法实例详解
Dec 29 PHP
php实现遍历文件夹的方法汇总
Mar 02 PHP
thinkphp3.2实现在线留言提交验证码功能
Jul 19 PHP
Laravel多用户认证系统示例详解
Mar 13 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变量作用域的一些问题
2013/08/08 PHP
smarty模板引擎基础知识入门
2015/03/30 PHP
php简单创建zip压缩文件的方法
2016/04/30 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
2016/10/08 PHP
Javascript学习笔记5 类和对象
2010/01/11 Javascript
jquery模拟SELECT下拉框取值效果
2013/10/23 Javascript
JS实现局部选择打印和局部不选择打印
2014/04/03 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
js css+html实现简单的日历
2016/07/14 Javascript
jquery实现ajax加载超时提示的方法
2016/07/23 Javascript
JS中对数组元素进行增删改移的方法总结
2016/12/15 Javascript
jQuery基于正则表达式的表单验证功能示例
2017/01/21 Javascript
全面总结Javascript对数组对象的各种操作
2017/01/22 Javascript
vue.js实现刷新当前页面的方法教程
2017/07/05 Javascript
微信小程序开发animation心跳动画效果
2017/08/16 Javascript
微信小程序分享功能之按钮button 边框隐藏和点击隐藏
2018/06/14 Javascript
vue-cli 打包后提交到线上出现 "Uncaught SyntaxError:Unexpected token" 报错
2018/11/06 Javascript
浅谈JavaScript节流和防抖函数
2020/08/25 Javascript
jquery自定义组件实例详解
2020/12/31 jQuery
wxpython学习笔记(推荐查看)
2014/06/09 Python
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
Python极简代码实现杨辉三角示例代码
2016/11/15 Python
将python运行结果保存至本地文件中的示例讲解
2019/07/11 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
python在CMD界面读取excel所有数据的示例
2020/09/28 Python
Oracle里面常用的数据字典有哪些
2014/02/14 面试题
综合办公室主任职责
2013/12/16 职场文书
汽车制造与装配专业自荐信范文
2014/01/02 职场文书
交通安全教育制度
2014/02/02 职场文书
营销总监岗位职责范本
2014/02/26 职场文书
正科级干部考察材料
2014/05/29 职场文书
2015大学生暑假调查报告
2015/07/13 职场文书
如何在向量化NumPy数组上进行移动窗口
2021/05/18 Python
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技
实现GO语言对数组切片去重
2022/04/20 Golang