php 读取文件乱码问题

 更新时间:2010年02月20日 11:00:44   作者:  
php 5的流读取函数好像默认编码是UTF-8,以前在php 4里直接file_get_contents()读取gb2312编码的正常,到了5就乱码了。
网上的解决办法说抓取后用iconv()转码。看后我就觉 得不对劲:一个是不一定编译了iconv库,更大的问题是编码都跟流转换的时候有关(如果用了iconv实际上php转了两次码:流 -> UTF-8 -> GB2312):这不是白忙乎了吗?

仔细看了下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′);测试:但是 faint的是,这个函数不存在?!似乎php 6才支持。不过天无绝人之路,还有“用户自定义上下文属性”可以用。

经过更仔细的看文档,最后解决了这个问题:
复制代码 代码如下:

//设置流的编码格式,这是文件流(file),如果是网络访问,file改成http
$opts = array('file' => array('encoding' => 'gb2312'));
$ctxt = stream_context_create($opts);
file_get_contents(文件名, FILE_TEXT, $ctxt);

相关文章

  • AJAX的使用方法详解

    AJAX的使用方法详解

    本篇文章主要介绍了AJAX的使用的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • PHP5.5在windows安装使用memcached服务端的方法

    PHP5.5在windows安装使用memcached服务端的方法

    这篇文章主要介绍了PHP5.5在windows安装使用memcached服务端的方法,需要的朋友可以参考下
    2014-04-04
  • PHP文件上传操作实例详解

    PHP文件上传操作实例详解

    这篇文章主要介绍了PHP文件上传操作,结合实例形式详细分析了php文件传输操作的实现技巧与相关注意事项,需要的朋友可以参考下
    2016-09-09
  • PHP Laravel门面的实现原理详解

    PHP Laravel门面的实现原理详解

    在Laravel中,门面为应用服务容器中绑定的类提供了一个“静态”接口,使得我们可以不用new这些类出来,就可以直接通过静态接口调用这些类中的方法。本文就来详细聊聊Laravel门面的实现原理,希望对大家有所帮助
    2023-02-02
  • php将xml转化对象的实例详解

    php将xml转化对象的实例详解

    在本篇文章里小编给大家整理的是一篇关于php将xml转化对象的实例详解内容,有需要的朋友们可以跟着学习下。
    2021-10-10
  • PHP中使用xmlreader读取xml数据示例

    PHP中使用xmlreader读取xml数据示例

    这篇文章主要介绍了PHP中使用xmlreader读取xml数据示例,本文示例相对简单,只包含了一个读取功能,需要的朋友可以参考下
    2014-12-12
  • PHP基于cookie实现统计在线人数功能示例

    PHP基于cookie实现统计在线人数功能示例

    这篇文章主要介绍了PHP基于cookie实现统计在线人数功能,涉及php文件读写、cookie访问、计算等相关操作技巧,需要的朋友可以参考下
    2019-01-01
  • php cookie中点号(句号)自动转为下划线问题

    php cookie中点号(句号)自动转为下划线问题

    这篇文章主要介绍了php cookie中点号(句号)自动转为下划线问题,需要的朋友可以参考下
    2014-10-10
  • php字符串使用详细了解

    php字符串使用详细了解

    PHP中的字符串是一种类C风格的字符串,只不过已经得到了很好的封装。在PHP中,可以将字符串包含在一对双引号或一对单引号之中,我们来看一看php的字符串都有哪些特点
    2022-12-12
  • MyEclipse常用配置图文教程

    MyEclipse常用配置图文教程

    本文主要是记录一些有用的设置技巧,并且是图文并茂,像创建项目,创建类,设置工作空间等在这里就不做介绍了,而且之前的文章也有涉猎。
    2014-09-09

最新评论