原创

php 读取文件乱码解决方案

php 5的流读取函数默认编码是UTF-8,之前在php 4里直接file_get_contents()读取gb2312编码的正常,但是到了php 5之后就出现乱码现象了,下面讲述一下具体的解决方案。

大家可以仔细看一下php开发文档,上面记录的十分清楚,关于fopen()及file_get_contents()都提到了“默认是UTF-8,但是用户可以用stream_default_encoding()或者用户自定义上下文属性改变编码。

英文记录如下:

If unicode semantics are enabled, the default encoding of the read data is UTF-8. You can specify a different encoding by creating a custom context or by changing the default using stream_default_encoding()。

于是用stream_default_encoding('gb2312′);注意在php 6之后才支持使用faint函数,所以可以用“用户自定义上下文属性”来实现。 

具体解决方式代码如下:

//设置流的编码格式文件流(file)网络访问file改成http 

$opts = array('file' => array('encoding' => 'gb2312')); 
$ctxt = stream_context_create($opts); 
file_get_contents(文件名, FILE_TEXT, $ctxt);
~阅读全文~人机检测~

关注下方微信公众号“Java精选”(w_z90110),回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。

Java精选专注程序员推送一些Java开发知识,包括基础知识、各大流行框架(Mybatis、Spring、Spring Boot等)、大数据技术(Storm、Hadoop、MapReduce、Spark等)、数据库(Mysql、Oracle、NoSQL等)、算法与数据结构、面试专题、面试技巧经验、职业规划以及优质开源项目等。其中一部分由小编总结整理,另一部分来源于网络上优质资源,希望对大家的学习和工作有所帮助。

评论

分享:

支付宝

微信