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中的CMS的涵义
Mar 11 PHP
php 无极分类(递归)实现代码
Jan 05 PHP
php设计模式 Bridge (桥接模式)
Jun 26 PHP
PHP在不同页面间传递Json数据示例代码
Jun 08 PHP
浅谈php命令行用法
Feb 04 PHP
php目录拷贝实现方法
Jul 10 PHP
PHP模拟asp中response类实现方法
Aug 08 PHP
Linux系统中为php添加pcntl扩展
Aug 28 PHP
php头像上传预览实例代码
May 02 PHP
PHP实现微信申请退款功能
Oct 01 PHP
详解php命令注入攻击
Apr 06 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
Oct 16 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
为查询结果建立向后/向前按钮
2006/10/09 PHP
使用php测试硬盘写入速度示例
2014/01/27 PHP
thinkphp控制器调度使用示例
2014/02/24 PHP
PHP动态生成javascript文件的2个例子
2014/04/11 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
php静态成员方法和静态的成员属性的使用方法
2017/10/26 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
window.showModalDialog使用手册
2007/01/11 Javascript
javascript new 需不需要继续使用
2009/07/02 Javascript
dojo随手记 gird组件引用
2011/02/24 Javascript
javascript运行机制之this详细介绍
2014/02/07 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
异步JS框架的作用以及实现方法
2015/10/29 Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
2016/08/17 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
2017/03/21 Javascript
基于JavaScript实现的折半查找算法示例
2017/04/14 Javascript
angular bootstrap timepicker TypeError提示怎么办
2017/06/13 Javascript
element ui里dialog关闭后清除验证条件方法
2018/02/26 Javascript
React SSR样式及SEO的实践
2018/10/22 Javascript
原生javascript实现连连看游戏
2019/01/03 Javascript
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
2019/07/11 jQuery
jQuery HTML获取内容和属性操作实例分析
2020/05/20 jQuery
vue select 获取value和lable操作
2020/08/28 Javascript
解决vue中使用less/sass及使用中遇到无效的问题
2020/10/24 Javascript
[04:55]完美世界副总裁蔡玮:DOTA2的自由、公平与信任
2013/12/18 DOTA
[06:42]DOTA2每周TOP10 精彩击杀集锦vol.1
2014/06/25 DOTA
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
2019/10/23 Python
Python多线程正确用法实例解析
2020/05/30 Python
Flask缓存静态文件的具体方法
2020/08/02 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
Python经典五人分鱼实例讲解
2021/01/04 Python
给物业的表扬信
2014/01/21 职场文书
商场促销活动总结
2014/07/10 职场文书
python解析照片拍摄时间进行图片整理
2022/07/23 Python