php 读取pdf文件内容 显示乱码,PHP读取文件,解决中文乱码UTF-8的方法分析
本文实例讲述了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的方法分析相关推荐
- 如何解决oracle中文乱码问题,oracle中解决中文乱码问题
中文乱码问题解决 1.查看服务器端编码 select userenv('language') from dual; 查到结果是: USERENV('LANGUAGE') --------------- ...
- cocos2dx java 乱码_[cocos2d-x] --- 完美解决中文乱码
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一 介绍 最近由于各种各样的原因,好长时间没有学习cocos2d-x了.突然有种害怕的感觉,这样下去,以前学的关于cocos2d-x的一点皮毛会彻底忘记的 ...
- sqlserver mysql 乱码_SQLServer数据库如何解决中文乱码问题?方法有哪些?
很多使用数据库的人都知道,在安装SQLServer数据库是,如果设置不当就会出现一些中文乱码.主要原因是,很多人在使用默认安装系统时,一般不会考虑到默认排序的规则是拉丁文的排序规则,只是点击下一步,在 ...
- vscode 调试php 乱码,vscode调试c解决中文乱码怎么办
被vscode的c/c++的控制台中文乱码困扰了好久,一些找到的方法根本不适合我的情况,然后好不容易才找到可以的方法.其实也就是配置两个地方. 首先c语言的运行程序是调用的cmd.exe而window ...
- php pdo mysql 乱码,php pdo连接数据库 解决中文乱码问题(wordpress mysql 问号?? ??)...
摘要:PHP 用pdo连接数据库时出现中文乱码问题解决办法1.array(PDO::MYSQL_ATTR_INIT_COMMAND => "set names utf8"), ...
- python读取xml文件内容显示不全_python读取xml文件时的问题
py文件 #!/usr/bin/env python #coding=utf-8 from xml.dom.minidom import parse, parseString def getText( ...
- mysql5.7乱码_mysql5.7中解决中文乱码的问题
在使用mysql5.7时,会发现通过web端向数据库中写入中文后会出现乱码,但是在数据库中直接操作SQL语句插入数据后中文就显示正常,这个问题怎么解决呢?此处不对mysql的数据编码过程和原理进行讲解 ...
- java json中文乱码_JSON数据传输,解决中文乱码
遇到Json从Java后台传到前端乱码的问题, 设置格式为text/json */ response.setContentType("text/json"); /*设置字符集为' ...
- PHPWord生成word 下载 解决中文乱码
文章分两部分:一是代码部分,第二是解决中文乱码. 使用PHPWord生成Word文档 下载或保存到服务器 /*生成word文档*/public function makePhpWord(){vendo ...
最新文章
- fps 每秒刷新的频率
- 016_Servlet上下文
- notes邮件正文显示不全_Outlook邮件中的可操作消息(Actionable Message)
- 用JoyToKey使游戏手柄变键盘或鼠标
- 如何截取_【实用技巧】如何截取网页长图
- yii2.0 错误处理
- JDK历史所有版本下载地址(附Oracle帐号)
- 星外系统更换短信接口
- 【利用VBA批量处理中望CAD的修改打印出PDF】
- 英语secuerity证券
- day19 文件操作
- 中秋节后如何留住客户?
- Java-项目1-家庭收支记账软件
- 信源编码的代码实现 (香农编码、费诺编码、哈夫曼编码、游程编码、算术编码)
- 关于java实体类和mysql数据库json格式的对应问题,使用mybatis-plus
- vue中如何加入横线_vue
- 视频会议系统结构逻辑
- 三代Android大版本升级,三星将提供三代Android大版本升级,多款机型在列,S9遗憾被淘汰...
- BlockChain技术系列(三)- fabric协议介绍
- pubg服务器正在维护中 维护时间请参考,pubg服务器维护中