php 读取文件乱码问题


Posted in PHP onFebruary 20, 2010

网上的解决办法说抓取后用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 相关文章推荐
笑谈配置,使用Smarty技术
Jan 04 PHP
php模板之Phpbean的目录结构
Jan 10 PHP
在Windows系统上安装PHP运行环境文字教程
Jul 19 PHP
PHP中使用mktime获取时间戳的一个黑色幽默分析
May 31 PHP
PHP关联数组的10个操作技巧
Jan 21 PHP
PHP读取文件内容后清空文件示例代码
Mar 18 PHP
PHP使用strrev翻转中文乱码问题的解决方法
Jan 13 PHP
php+Memcached实现简单留言板功能示例
Feb 15 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
Aug 02 PHP
PHP Post获取不到非表单数据的问题解决办法
Feb 27 PHP
php 将json格式数据转换成数组的方法
Aug 21 PHP
PHP通过文件路径获取文件名的实例代码
Oct 14 PHP
判断是否为指定长度内字符串的php函数
Feb 16 #PHP
支持数组的ADDSLASHES的php函数
Feb 16 #PHP
php htmlspecialchars加强版
Feb 16 #PHP
php 数组二分法查找函数代码
Feb 16 #PHP
在字符串指定位置插入一段字符串的php代码
Feb 16 #PHP
GBK的页面输出JSON格式的php函数
Feb 16 #PHP
同台服务器使用缓存APC效率高于Memcached的演示代码
Feb 16 #PHP
You might like
PHP动态生成javascript文件的2个例子
2014/04/11 PHP
php中curl和file_get_content的区别
2014/05/10 PHP
PHP获取一个字符串中间一部分字符的方法
2014/08/19 PHP
thinkphp命名空间用法实例详解
2015/12/30 PHP
php实现学生管理系统
2020/03/21 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
PHP实现15位身份证号转18位的方法分析
2019/10/16 PHP
Extjs4中Form的使用之本地hiddenfield
2013/11/26 Javascript
直接在JS里创建JSON数据然后遍历使用
2014/07/25 Javascript
jquery中JSON的解析方式
2015/03/16 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
jQuery右下角悬浮广告实例
2016/10/17 Javascript
基于vue的fullpage.js单页滚动插件
2017/03/20 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
Python时间戳与时间字符串互相转换实例代码
2013/11/28 Python
python使用wmi模块获取windows下的系统信息 监控系统
2015/10/27 Python
python 实时遍历日志文件
2016/04/12 Python
解决Pandas的DataFrame输出截断和省略的问题
2019/02/08 Python
python处理DICOM并计算三维模型体积
2019/02/26 Python
python实现两个一维列表合并成一个二维列表
2019/12/02 Python
200行python代码实现贪吃蛇游戏
2020/04/24 Python
Python预测2020高考分数和录取情况
2020/07/08 Python
CSS3+Sprite实现僵尸行走动画特效源码
2016/01/27 HTML / CSS
详解如何在css3打包后自动追加前缀插件:autoprefixer
2018/12/18 HTML / CSS
英国著名药妆店:Superdrug
2021/02/13 全球购物
简述索引存取方法的作用和建立索引的原则
2013/03/26 面试题
个人授权委托书范本
2014/04/03 职场文书
培训协议书范本
2014/04/22 职场文书
优秀党支部书记事迹材料
2014/05/29 职场文书
门卫岗位职责说明书
2014/08/18 职场文书
家庭贫困证明书(3篇)
2014/09/15 职场文书
给老师的感谢信
2015/01/20 职场文书
文明礼仪主题班会
2015/08/13 职场文书
担保书怎么写 ?
2019/04/22 职场文书
SQL实现LeetCode(175.联合两表)
2021/08/04 MySQL
不想升级Win11?教你彻底锁定老版Windows系统的方法(附下载地址)
2022/09/23 数码科技