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 相关文章推荐
php 分库分表hash算法
Nov 12 PHP
drupal 代码实现URL重写
May 04 PHP
php ajax 静态分页过程形式
Sep 02 PHP
基于PHP创建Cookie数组的详解
Jul 03 PHP
浅析php变量作用域的一些问题
Aug 08 PHP
php获取客户端电脑屏幕参数的方法
Jan 09 PHP
Laravel5.1自定义500错误页面示例
Oct 09 PHP
对PHP依赖注入的理解实例分析
Oct 09 PHP
PHP设计模式之工厂方法设计模式实例分析
Apr 25 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
May 05 PHP
PHP Ajax跨域问题解决方案代码实例
Aug 01 PHP
浅谈如何提高PHP代码质量之单元测试
May 28 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
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
JavaScript 自动完成脚本整理(33个)
2009/10/20 Javascript
jQuery实现长文字部分显示代码
2013/05/13 Javascript
jQuery表单域选择器用法分析
2015/02/10 Javascript
JavaScript中Function()函数的使用教程
2015/06/04 Javascript
延时加载JavaScript代码提高速度
2015/12/27 Javascript
Webpack打包字体font-awesome的方法示例
2018/04/26 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
2018/07/13 jQuery
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
Vue学习之组件用法实例详解
2020/01/06 Javascript
jquery实现垂直手风琴菜单
2020/03/04 jQuery
Vant picker 多级联动操作
2020/11/02 Javascript
JavaScript字符串转数字的简单实现方法
2020/11/27 Javascript
[06:38]DOTA2怒掀电竞风暴 2013Chinajoy
2013/07/27 DOTA
[51:22]Fnatic vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[54:06]OG vs TNC 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python实现对一个函数应用多个装饰器的方法示例
2018/02/09 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
详解如何在cmd命令窗口中搭建简单的python开发环境
2019/08/29 Python
django template实现定义临时变量,自定义赋值、自增实例
2020/07/12 Python
python 绘制场景热力图的示例
2020/09/23 Python
python实现移动木板小游戏
2020/10/09 Python
浅析图片上传及canvas压缩的流程
2020/06/10 HTML / CSS
吉力贝官方网站:Jelly Belly
2019/03/11 全球购物
大学生村官典型材料
2014/01/12 职场文书
群众路线批评与自我批评
2014/02/06 职场文书
党员承诺践诺书
2014/05/20 职场文书
大学国际贸易专业自荐信
2014/06/05 职场文书
文艺晚会策划方案
2014/06/11 职场文书
拾金不昧感谢信
2015/01/21 职场文书
教师党员自我评价2015
2015/03/04 职场文书
学校办公室主任岗位职责
2015/04/01 职场文书
2015年除四害工作总结
2015/07/23 职场文书
强烈推荐:小学生:暑假作息时间表(值得收藏)
2019/07/09 职场文书
使用Oracle命令进行数据库备份与还原
2021/12/06 Oracle
MySQL限制查询和数据排序介绍
2022/03/25 MySQL