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 相关文章推荐
多重?l件?合查?(二)
Oct 09 PHP
PHP中return 和 exit 、break和contiue 区别与用法
Apr 09 PHP
深入Apache与Nginx的优缺点比较详解
Jun 17 PHP
解析在apache里面给php写虚拟目录的详细方法
Jun 24 PHP
PHP中把stdClass Object转array的几个方法
May 08 PHP
php实现utf-8转unicode函数分享
Jan 06 PHP
php判断对象是派生自哪个类的方法
Jun 20 PHP
PHP的时间戳与具体时间转化的简单实现
Jun 13 PHP
10个值得深思的PHP面试题
Nov 14 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
如何通过View::first使用Laravel Blade的动态模板详解
Sep 21 PHP
PHP设计模式之工厂模式详解
Oct 24 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脚本数据库功能详解(下)
2006/10/09 PHP
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
2011/04/23 PHP
PHP通过正则表达式下载图片到本地的实现代码
2011/09/19 PHP
PHP临时文件的安全性分析
2014/07/04 PHP
THINKPHP在添加数据的时候获取主键id的值方法
2017/04/03 PHP
Windows下php+mysql5.7配置教程
2017/05/16 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
2017/12/31 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
2020/05/25 PHP
javascript打印html内容功能的方法示例
2013/11/28 Javascript
js取值中form.all和不加all的区别介绍
2014/01/20 Javascript
浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
2014/11/12 Javascript
Javascript中实现trim()函数的两种方法
2015/02/04 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
2015/08/06 Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
2017/03/06 Javascript
Bootstrap输入框组件简单实现代码
2017/03/06 Javascript
nodejs中全局变量的实例解析
2017/03/07 NodeJs
纯js实现页面返回顶部的动画(超简单)
2017/08/10 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
Ajax请求时无法重定向的问题解决代码详解
2019/06/21 Javascript
layer 关闭指定弹出层的例子
2019/09/25 Javascript
JS中的变量作用域(console版)
2020/07/18 Javascript
python类型强制转换long to int的代码
2013/02/10 Python
Python功能键的读取方法
2015/05/28 Python
Python扫描IP段查看指定端口是否开放的方法
2015/06/09 Python
在python中实现对list求和及求积
2018/11/14 Python
python使用opencv resize图像不进行插值的操作
2020/07/05 Python
python如何支持并发方法详解
2020/07/25 Python
Python JSON常用编解码方法代码实例
2020/09/05 Python
python-图片流传输的思路及示例(url转换二维码)
2020/12/21 Python
CSS3动画animation实现云彩向左滚动
2014/05/09 HTML / CSS
使用分层画布来优化HTML5渲染的教程
2015/05/08 HTML / CSS
美德少年事迹材料
2014/01/23 职场文书
公司备用金管理制度
2015/08/04 职场文书
《称赞》教学反思
2016/02/17 职场文书
铁头也玩根德 YachtBoy YB-230......
2022/04/05 无线电