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

相关文章

  • PHP查找与搜索数组元素方法总结

    PHP查找与搜索数组元素方法总结

    这篇文章主要介绍了PHP查找与搜索数组元素方法,实例总结了php中in_array、array_key_exists、array_search、array_keys及array_values等函数操作数组的相关使用技巧,需要的朋友可以参考下
    2015-06-06
  • php trim 去除空字符的定义与语法介绍

    php trim 去除空字符的定义与语法介绍

    今天我们就为大家带来了PHP函数trim()的相关定义与用法。
    2010-05-05
  • PHP 图片上传代码

    PHP 图片上传代码

    昨天晚上自学的一段代码到公司来调试。很顺利,到了中午的时候基本上添加、修改、删除,这些在代码世界中最基础的功能都基本实现了,蛮有成就感的。
    2011-09-09
  • PHP使用Pear发送邮件(Windows环境)

    PHP使用Pear发送邮件(Windows环境)

    这篇文章主要介绍了在Windows环境下,PHP使用Pear发送邮件的实现方法,以及Windows下安装PHP Pear的详细步骤,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • PHP 自定义错误处理函数trigger_error()

    PHP 自定义错误处理函数trigger_error()

    trigger_error() 用于在用户指定的条件下触发一个错误消息。它与内建的错误处理器一同使用,也可以与由 set_error_handler() 函数创建的用户自定义函数使用
    2013-03-03
  • PHP实现的数组和XML文件相互转换功能示例

    PHP实现的数组和XML文件相互转换功能示例

    这篇文章主要介绍了PHP实现的数组和XML文件相互转换功能,结合实例形式分析了php针对xml格式数据与数组相互转换操作技巧,需要的朋友可以参考下
    2018-03-03
  • PHP小技巧之函数重载

    PHP小技巧之函数重载

    php 作为一种弱类型语言,本身不能像强类型如java ,c++那样,直接的实现重载。不过可以通过一些方法,间接的实现重载。
    2014-06-06
  • php中iconv函数使用方法

    php中iconv函数使用方法

    最近在做一个程序,需要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些。
    2008-05-05
  • PHP实现一个按钮点击上传多个图片操作示例

    PHP实现一个按钮点击上传多个图片操作示例

    这篇文章主要介绍了PHP实现一个按钮点击上传多个图片操作,结合具体实例形式分析了PHP多文件上传前端提交与后台处理相关操作技巧,需要的朋友可以参考下
    2020-01-01

最新评论