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的无限分类实现想法~
Jan 02 PHP
php 表单验证实现代码
Mar 10 PHP
PHP 文件上传功能实现代码
Jun 24 PHP
基于empty函数的输出详解
Jun 17 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
Jun 25 PHP
PHP CURL获取cookies模拟登录的方法
Nov 04 PHP
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
Feb 24 PHP
php中异常处理方法小结
Jan 09 PHP
浅谈本地WAMP环境的搭建
May 13 PHP
PHP Oauth授权和本地加密实现方法
Aug 12 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
Jul 03 PHP
php图片合成方法(多张图片合成一张)
Nov 25 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 学习资料零碎东西
2010/12/04 PHP
php学习之 数组声明
2011/06/09 PHP
php记录代码执行时间(实现代码)
2013/07/05 PHP
php实现水仙花数示例分享
2014/04/03 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
2015/04/17 PHP
学习php设计模式 php实现策略模式(strategy)
2015/12/07 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
2016/01/08 PHP
php四种定界符详解
2017/02/16 PHP
PHP http请求超时问题解决方案
2020/11/13 PHP
In Javascript Class, how to call the prototype method.(three method)
2007/01/09 Javascript
jquery form 隐藏的input 选择
2014/04/29 Javascript
js控制当再次点击按钮时的间隔时间
2014/06/03 Javascript
javascript如何实现暂停功能
2015/11/06 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
2016/09/19 Javascript
ionic cordova一次上传多张图片(类似input file提交表单)的实现方法
2016/12/16 Javascript
原生js实现无缝轮播图效果
2017/01/11 Javascript
Javascript的this用法
2017/01/16 Javascript
jQuery+pjax简单示例汇总
2017/04/21 jQuery
weex里Vuex state使用storage持久化详解
2017/09/09 Javascript
在React 组件中使用Echarts的示例代码
2017/11/08 Javascript
vue里面父组件修改子组件样式的方法
2018/02/03 Javascript
MVVM框架下实现分页功能示例
2018/06/14 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
2018/07/28 Javascript
jquery.param()实现数组或对象的序列化方法
2018/10/08 jQuery
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
js如何验证密码强度
2020/03/18 Javascript
python3实现域名查询和whois查询功能
2018/06/21 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
2019/06/26 Python
免税水晶:Duty Free Crystal
2019/05/13 全球购物
顺丰快递Java软件工程师面试题
2015/07/31 面试题
模具专业推荐信
2013/10/30 职场文书
摄影专业毕业生求职信
2014/03/13 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书
结婚纪念日感言
2015/08/01 职场文书
2019年恭贺升学祝福语集锦
2019/08/15 职场文书
熟背这些句子,让您的英语口语突飞猛进(135句)
2019/09/06 职场文书