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 相关文章推荐
截获网站title标签之家内容的例子
Oct 09 PHP
PHP实现图片简单上传
Oct 09 PHP
木翼下载系统中说明的PHP安全配置方法
Jun 16 PHP
程序员编程十条戒律
Jul 09 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
Apr 26 PHP
PHP遍历并打印指定目录下所有文件实例
Feb 10 PHP
php实例分享之二维数组排序
May 15 PHP
php操作XML、读取数据和写入数据的实现代码
Aug 15 PHP
php使用iconv中文截断问题的解决方法
Feb 11 PHP
PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例
May 12 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
TP5框架实现自定义分页样式的方法示例
Apr 05 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根据指定位置和长度获得子字符串的方法
2015/03/17 PHP
详解WordPress中添加友情链接的方法
2016/05/21 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
2016/10/28 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
PHP的cookie与session原理及用法详解
2019/09/27 PHP
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
JS获取当前日期和时间的简单实例
2013/11/19 Javascript
Bootstrap Table使用方法详解
2016/08/01 Javascript
JavaScript通过改变文字透明度实现的文字闪烁效果实例
2017/04/27 Javascript
swiper动态改变滑动内容的实现方法
2018/01/17 Javascript
vue中设置height:100%无效的问题及解决方法
2018/07/27 Javascript
使用JavaScript实现node.js中的path.join方法
2018/08/12 Javascript
JavaScript动画实例之粒子文本的实现方法详解
2020/07/28 Javascript
[45:32]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
用Python的pandas框架操作Excel文件中的数据教程
2015/03/31 Python
举例讲解Python的lambda语句声明匿名函数的用法
2016/07/01 Python
python利用拉链法实现字典方法示例
2017/03/25 Python
python使用opencv按一定间隔截取视频帧
2018/03/06 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
python xpath获取页面注释的方法
2019/01/14 Python
Python程序打包工具py2exe和PyInstaller详解
2019/06/28 Python
Python替换NumPy数组中大于某个值的所有元素实例
2020/06/08 Python
将一个数的从第5位开始的7个数取出,其余位置0
2016/05/26 面试题
总经理驾驶员岗位职责
2013/12/04 职场文书
护士实习鉴定范文
2013/12/22 职场文书
七年级音乐教学反思
2014/01/26 职场文书
教师自我鉴定范文
2014/03/20 职场文书
大学生就业自荐书
2014/06/16 职场文书
学校四风问题对照检查材料思想汇报
2014/09/26 职场文书
入党积极分子十八届四中全会思想汇报
2014/10/23 职场文书
千与千寻观后感
2015/06/04 职场文书
交通处罚决定书
2015/06/24 职场文书
证婚人婚礼致辞
2015/07/28 职场文书
党章党规党纪学习心得体会
2016/01/14 职场文书
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python