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 相关文章推荐
一个简单的MySQL数据浏览器
Oct 09 PHP
PHP 命名空间实例说明
Jan 27 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
Jun 17 PHP
Php连接及读取和写入mysql数据库的常用代码
Aug 11 PHP
PHP中iconv函数转码时截断字符问题的解决方法
Jan 21 PHP
php+mysql实现无限级分类
Nov 11 PHP
PHP实现QQ登录实例代码
Jan 14 PHP
PHP的Yii框架中过滤器相关的使用总结
Mar 29 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
Apr 30 PHP
php中str_pad()函数用法分析
Mar 28 PHP
Laravel实现autoload方法详解
May 07 PHP
php+laravel 扫码二维码签到功能
May 15 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
laravel请求参数校验方法
2019/10/10 PHP
yii框架数据库关联查询操作示例
2019/10/14 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
jQuery UI 应用不同Theme的办法
2010/09/12 Javascript
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
2012/02/03 Javascript
利用jQuary实现文字浮动提示效果示例代码
2013/12/26 Javascript
jquery实现动态画圆
2014/12/04 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
js+css实现的圆角边框TAB选项卡滑动门代码分享(2款)
2015/08/26 Javascript
谈谈impress.js初步理解
2015/09/09 Javascript
Bootstrap每天必学之媒体对象
2015/11/30 Javascript
初探JavaScript 面向对象(推荐)
2017/09/03 Javascript
Vue 父子组件的数据传递、修改和更新方法
2018/03/01 Javascript
详解VueJs中的V-bind指令
2018/05/03 Javascript
详解Vue 动态组件与全局事件绑定总结
2018/11/11 Javascript
说说如何在Vue.js中实现数字输入组件的方法
2019/01/08 Javascript
微信小程序实现分享商品海报功能
2019/09/30 Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
2020/11/16 Javascript
修改NPM全局模式的默认安装路径的方法
2020/12/15 Javascript
[08:44]和酒神一起战斗 DOTA2教你做大人
2014/03/27 DOTA
[40:19]2018完美盛典CS.GO表演赛
2018/12/17 DOTA
python实现哈希表
2014/02/07 Python
python使用正则表达式检测密码强度源码分享
2014/06/11 Python
Django models.py应用实现过程详解
2019/07/29 Python
python 爬取学信网登录页面的例子
2019/08/13 Python
django框架两个使用模板实例
2019/12/11 Python
SpringBoot实现登录注册常见问题解决方案
2020/03/04 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
pycharm实现猜数游戏
2020/12/07 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
Spy++的使用方法及下载教程
2021/01/29 Python
电大本科自我鉴定
2014/02/05 职场文书
二年级学生评语大全
2014/04/23 职场文书
公证处委托书
2015/01/28 职场文书
2015小学音乐教师个人工作总结
2015/07/21 职场文书
mysql5.5中文乱码问题解决的有用方法
2022/05/30 MySQL