本文实例讲述了PHP读取文件,解决中文乱码UTF-8的方法。分享给大家供大家参考,具体如下:

$opts = array(

"file" => array(

"encoding" => "utf-8"

)

);

$opts = array("http" => array("encoding" => "utf-8"));

$ctxt = stream_context_create($opts);

$content = file_get_contents($filePath, FILE_TEXT, $ctxt);

最简单的就是将GF2312→UTF-8

$str = iconv("gb2312", "utf-8", $str);

不管用的

$content = mb_convert_encoding($content, "UTF-8", "auto");

******************************************丑陋的分割线来告诉大家上面的不好的:下面的才是正确的方法・・・哈哈・・・**********************************************************

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));

$text = file_get_contents($newPath);

$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";

$content = file_get_contents($newPath);

$content = iconv($encodType, "utf-8", $content);

终极版・・・・・

$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);

}

以上的终极版・可以适应中文操作windows系统建立的ANSI``````````````UTF-8`````````Unicode`````的txt文本・・・・

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP编码与转码操作技巧汇总》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php常用函数与技巧总结》及《PHP错误与异常处理方法总结》

希望本文所述对大家PHP程序设计有所帮助。

php 读取pdf文件内容 显示乱码,PHP读取文件,解决中文乱码UTF-8的方法分析相关推荐

  1. 如何解决oracle中文乱码问题,oracle中解决中文乱码问题

    中文乱码问题解决 1.查看服务器端编码 select userenv('language') from dual; 查到结果是: USERENV('LANGUAGE') --------------- ...

  2. cocos2dx java 乱码_[cocos2d-x] --- 完美解决中文乱码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一 介绍 最近由于各种各样的原因,好长时间没有学习cocos2d-x了.突然有种害怕的感觉,这样下去,以前学的关于cocos2d-x的一点皮毛会彻底忘记的 ...

  3. sqlserver mysql 乱码_SQLServer数据库如何解决中文乱码问题?方法有哪些?

    很多使用数据库的人都知道,在安装SQLServer数据库是,如果设置不当就会出现一些中文乱码.主要原因是,很多人在使用默认安装系统时,一般不会考虑到默认排序的规则是拉丁文的排序规则,只是点击下一步,在 ...

  4. vscode 调试php 乱码,vscode调试c解决中文乱码怎么办

    被vscode的c/c++的控制台中文乱码困扰了好久,一些找到的方法根本不适合我的情况,然后好不容易才找到可以的方法.其实也就是配置两个地方. 首先c语言的运行程序是调用的cmd.exe而window ...

  5. php pdo mysql 乱码,php pdo连接数据库 解决中文乱码问题(wordpress mysql 问号?? ??)...

    摘要:PHP 用pdo连接数据库时出现中文乱码问题解决办法1.array(PDO::MYSQL_ATTR_INIT_COMMAND => "set names utf8"), ...

  6. python读取xml文件内容显示不全_python读取xml文件时的问题

    py文件 #!/usr/bin/env python #coding=utf-8 from xml.dom.minidom import parse, parseString def getText( ...

  7. mysql5.7乱码_mysql5.7中解决中文乱码的问题

    在使用mysql5.7时,会发现通过web端向数据库中写入中文后会出现乱码,但是在数据库中直接操作SQL语句插入数据后中文就显示正常,这个问题怎么解决呢?此处不对mysql的数据编码过程和原理进行讲解 ...

  8. java json中文乱码_JSON数据传输,解决中文乱码

    遇到Json从Java后台传到前端乱码的问题, 设置格式为text/json */ response.setContentType("text/json");  /*设置字符集为' ...

  9. PHPWord生成word 下载 解决中文乱码

    文章分两部分:一是代码部分,第二是解决中文乱码. 使用PHPWord生成Word文档 下载或保存到服务器 /*生成word文档*/public function makePhpWord(){vendo ...

最新文章

  1. fps 每秒刷新的频率
  2. 016_Servlet上下文
  3. notes邮件正文显示不全_Outlook邮件中的可操作消息(Actionable Message)
  4. 用JoyToKey使游戏手柄变键盘或鼠标
  5. 如何截取_【实用技巧】如何截取网页长图
  6. yii2.0 错误处理
  7. JDK历史所有版本下载地址(附Oracle帐号)
  8. 星外系统更换短信接口
  9. 【利用VBA批量处理中望CAD的修改打印出PDF】
  10. 英语secuerity证券
  11. day19 文件操作
  12. 中秋节后如何留住客户?
  13. Java-项目1-家庭收支记账软件
  14. 信源编码的代码实现 (香农编码、费诺编码、哈夫曼编码、游程编码、算术编码)
  15. 关于java实体类和mysql数据库json格式的对应问题,使用mybatis-plus
  16. vue中如何加入横线_vue
  17. 视频会议系统结构逻辑
  18. 三代Android大版本升级,三星将提供三代Android大版本升级,多款机型在列,S9遗憾被淘汰...
  19. BlockChain技术系列(三)- fabric协议介绍
  20. pubg服务器正在维护中 维护时间请参考,pubg服务器维护中

热门文章

  1. (附源码)计算机毕业设计ssm蛋糕店会员管理系统
  2. AE解析WKT生成图形C#
  3. 十天,从入门到退坑java
  4. 目前工业机器人可以替代哪些工种或者哪些从业人员的工作?
  5. matlab 仿射变换函数,matlab实现仿射变换
  6. 使用parted分区并建立xfs文件系统
  7. python链表库_[转]为什么python标准库没有实现链表
  8. QProcess设置运行环境
  9. DNS解析过程详解[转载]
  10. JFX2中实现Combox显示图片