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模板之Phpbean的目录结构
Jan 10 PHP
Php 构造函数construct的前下划线是双的_
Dec 08 PHP
第四章 php数学运算
Dec 30 PHP
PHP设计模式之代理模式的深入解析
Jun 13 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
Jun 14 PHP
关于svn冲突的解决方法
Jun 21 PHP
Zend Studio 实用快捷键一览表(精心整理)
Aug 10 PHP
php环境下利用session防止页面重复刷新的具体实现
Jan 09 PHP
PHP将URL转换成短网址的算法分享
Sep 13 PHP
PHP数据的提交与过滤基本操作实例详解
Nov 11 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
解决tp5在nginx下修改配置访问的问题
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
第十三节 对象串行化 [13]
2006/10/09 PHP
PHP把网页保存为word文件的三种方法
2014/04/01 PHP
php实现在限定区域里自动调整字体大小的类实例
2015/04/02 PHP
php实现统计网站在线人数的方法
2015/05/12 PHP
php 时间time与日期date之间的使用详解及区别
2016/11/07 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
JQuery autocomplete 使用手册
2010/04/01 Javascript
限制textbox或textarea输入字符长度的JS代码
2013/10/16 Javascript
使用简洁的jQuery方法实现隔行换色功能
2014/01/02 Javascript
JavaScript利用正则表达式去除日期中的-
2014/06/09 Javascript
Javascript核心读书有感之类型、值和变量
2015/02/11 Javascript
js实现C#的StringBuilder效果完整实例
2015/12/22 Javascript
jQuery动画效果图片轮播特效
2016/01/12 Javascript
VUE2.0中Jsonp的使用方法
2018/05/22 Javascript
JS正则表达式封装与使用操作示例
2019/05/15 Javascript
[31:33]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第一场
2014/05/23 DOTA
python将MongoDB里的ObjectId转换为时间戳的方法
2015/03/13 Python
用Python实现协同过滤的教程
2015/04/08 Python
Python编程二分法实现冒泡算法+快速排序代码示例
2018/01/15 Python
python3+PyQt5实现支持多线程的页面索引器应用程序
2018/04/20 Python
Linux下升级安装python3.8并配置pip及yum的教程
2020/01/02 Python
浅谈JupyterNotebook导出pdf解决中文的问题
2020/04/22 Python
解决pip安装的第三方包在PyCharm无法导入的问题
2020/10/15 Python
python 元组和列表的区别
2020/12/30 Python
全球最大的游戏市场:G2A
2018/07/05 全球购物
来自世界上最好大学的在线课程:edX
2018/10/16 全球购物
荷兰的时尚市场:To Be Dressed
2019/05/06 全球购物
写clone()方法时,通常都有一行代码,是什么?
2012/10/31 面试题
前台领班岗位职责
2013/12/04 职场文书
党支部换届选举方案
2014/05/08 职场文书
幼儿发展评估方案
2014/06/11 职场文书
购房协议书范本
2014/10/02 职场文书
一年级语文下册复习计划
2015/01/17 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
英语演讲开场白
2015/05/29 职场文书