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之第五天
Oct 09 PHP
PHP 表单提交给自己
Jul 24 PHP
php遍历目录viewDir函数
Dec 15 PHP
php防攻击代码升级版
Dec 29 PHP
解析php中var_dump,var_export,print_r三个函数的区别
Jun 21 PHP
Php output buffering缓存及程序缓存深入解析
Jul 15 PHP
PHP函数之日期时间函数date()使用详解
Sep 09 PHP
php实现根据字符串生成对应数组的方法
Sep 22 PHP
几个实用的PHP内置函数使用指南
Nov 27 PHP
PHP单例模式详细介绍
Jul 01 PHP
PHP分页显示的方法分析【附PHP通用分页类】
May 10 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 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 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
php中jpgraph类库的使用介绍
2013/08/08 PHP
yii使用bootstrap分页样式的实例
2017/01/17 PHP
自制基于jQuery的智能提示插件一枚
2011/02/18 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
javascript禁制后退键(Backspace)实例代码
2013/11/15 Javascript
Extjs Label的 fieldLabel和html属性值对齐的方法
2014/06/15 Javascript
微信小程序 textarea 组件详解及简单实例
2017/01/10 Javascript
Node中使用ES6语法的基础教程
2018/01/05 Javascript
Vue表单demo v-model双向绑定问题
2018/06/29 Javascript
利用Dectorator分模块存储Vuex状态的实现
2019/02/05 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
2019/06/10 Javascript
Vue动态创建注册component的实例代码
2019/06/14 Javascript
Python多层嵌套list的递归处理方法(推荐)
2016/06/08 Python
pandas or sql计算前后两行数据间的增值方法
2018/04/20 Python
解决python打不开文件(文件不存在)的问题
2019/02/18 Python
将python运行结果保存至本地文件中的示例讲解
2019/07/11 Python
Python实现Word表格转成Excel表格的示例代码
2020/04/16 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
深入研究HTML5实现图片压缩上传功能
2016/03/25 HTML / CSS
HTML5标签嵌套规则详解【必看】
2016/04/26 HTML / CSS
吃透移动端 Html5 响应式布局
2019/12/16 HTML / CSS
柒牌官方商城:中国男装优秀品牌
2017/06/30 全球购物
美国环保婴儿用品公司:The Honest Company
2017/11/23 全球购物
高中军训感言1000字
2014/03/01 职场文书
六一亲子活动总结
2014/07/01 职场文书
小学感恩教育活动总结
2014/07/07 职场文书
自查自纠工作总结
2014/10/15 职场文书
再婚婚前财产协议书范本
2014/10/19 职场文书
2014年大学教师工作总结
2014/12/02 职场文书
岗位职责范本大全
2015/02/26 职场文书
Python离线安装openpyxl模块的步骤
2021/03/30 Python
解决SpringBoot跨域的三种方式
2021/06/26 Java/Android
SQL语法CONSTRAINT约束操作详情
2022/01/18 MySQL
mysql全面解析json/数组
2022/07/07 MySQL