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读取msn上的用户信息类
Dec 05 PHP
PHP设计模式之解释器模式的深入解析
Jun 13 PHP
基于PHP创建Cookie数组的详解
Jul 03 PHP
PHP中使用asort进行中文排序失效的问题处理
Aug 18 PHP
推荐一款PHP+jQuery制作的列表分页的功能模块
Oct 14 PHP
完美解决thinkphp验证码出错无法显示的方法
Dec 09 PHP
php结合mysql与mysqli扩展处理事务的方法
Jun 29 PHP
PHP数组操作简单案例分析
Oct 15 PHP
php封装的单文件(图片)上传类完整实例
Oct 18 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
Apr 01 PHP
PHP 并发场景的几种解决方案
Jun 14 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
Feb 23 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中的日期加减方法示例
2014/08/21 PHP
smarty循环嵌套用法示例分析
2016/07/19 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
2016/10/14 PHP
Laravel如何实现适合Api的异常处理响应格式
2020/06/14 PHP
JS 创建对象(常见的几种方法)
2008/11/03 Javascript
JavaScript 学习小结(适合新手参考)
2009/07/30 Javascript
两个Javascript小tip资料
2010/11/23 Javascript
C#中TrimStart,TrimEnd,Trim在javascript上的实现
2011/01/17 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
2013/05/06 Javascript
使用Web Uploader实现多文件上传
2016/06/08 Javascript
浅谈vue.js导入css库(elementUi)的方法
2018/03/09 Javascript
Node.js对MongoDB进行增删改查操作的实例代码
2019/04/18 Javascript
element-ui上传一张图片后隐藏上传按钮功能
2019/05/22 Javascript
Element-UI中关于table表格的那些骚操作(小结)
2019/08/15 Javascript
python中的reduce内建函数使用方法指南
2014/08/31 Python
Selenium定时刷新网页的实现代码
2018/10/31 Python
python+selenium实现自动抢票功能实例代码
2018/11/23 Python
Python实现繁体中文与简体中文相互转换的方法示例
2018/12/18 Python
用xpath获取指定标签下的所有text的实例
2019/01/02 Python
python 使用while写猜年龄小游戏过程解析
2019/10/07 Python
关于python pycharm中输出的内容不全的解决办法
2020/01/10 Python
基于matplotlib中ion()和ioff()的使用详解
2020/06/16 Python
解决Keras使用GPU资源耗尽的问题
2020/06/22 Python
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
html5指南-7.geolocation结合google maps开发一个小的应用
2013/01/07 HTML / CSS
美国户外服装和装备购物网站:Outland USA
2020/03/22 全球购物
技术总监岗位职责
2013/12/05 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
公司授权委托书格式样本
2014/10/01 职场文书
2016年国庆节宣传标语
2015/11/25 职场文书
2016七夕情人节寄语
2015/12/04 职场文书
2016党性教育学习心得体会
2016/01/21 职场文书
CSS3 实现的图片悬停的切换按钮
2021/04/13 HTML / CSS
NodeJs内存占用过高的排查实战记录
2021/05/10 NodeJs
关于CentOS 8 搭建MongoDB4.4分片集群的问题
2021/10/24 MongoDB
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
2022/04/29 Servers