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 相关文章推荐
phpmyadmin 3.4 空密码登录的实现方法
May 29 PHP
PHP字符编码问题之GB2312 VS UTF-8解决方法
Jun 23 PHP
php数组函数序列之array_values() 获取数组元素值的函数与方法
Oct 30 PHP
PHP转换IP地址到真实地址的方法详解
Jun 09 PHP
php获取远程图片体积大小的实例
Nov 12 PHP
PHP MYSQL实现登陆和模糊查询两大功能
Feb 05 PHP
php简单创建zip压缩文件的方法
Apr 30 PHP
PHP大文件分割上传 PHP分片上传
Aug 28 PHP
PHP的mysqli_thread_id()函数讲解
Jan 24 PHP
laravel框架中间件 except 和 only 的用法示例
Jul 12 PHP
PHP单文件上传原理及上传函数的封装操作示例
Sep 02 PHP
PHP使用PDO 连接与连接管理操作实例分析
Apr 21 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集成FCK的函数代码
2008/09/27 PHP
Yii2.0建立公共方法简单示例
2019/01/29 PHP
js下用eval生成JSON对象
2010/09/17 Javascript
解析JavaScript中点号“.”的多义性
2013/12/02 Javascript
Javascript遍历table中的元素示例代码
2014/07/08 Javascript
js propertychange和oninput事件
2014/09/28 Javascript
JS显示表格内指定行html代码的方法
2015/03/31 Javascript
详解http访问解析流程原理
2017/10/18 Javascript
利用node.js如何创建子进程详解
2017/12/09 Javascript
详解JS实现系统登录页的登录和验证
2019/04/29 Javascript
js类的继承定义与用法分析
2019/06/21 Javascript
Vue+Typescript中在Vue上挂载axios使用时报错问题
2019/08/07 Javascript
html-webpack-plugin修改页面的title的方法
2020/06/18 Javascript
js绘制一条直线并旋转45度
2020/08/21 Javascript
vue缓存之keep-alive的理解和应用详解
2020/11/02 Javascript
[06:16]DOTA2守卫传承者——职业选手谈心路历程
2015/02/26 DOTA
[00:59]DOTA2荣耀之路1:Doom is back!weapon X!
2018/05/22 DOTA
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
详解python之简单主机批量管理工具
2017/01/27 Python
python处理按钮消息的实例详解
2017/07/11 Python
python学习教程之Numpy和Pandas的使用
2017/09/11 Python
Numpy array数据的增、删、改、查实例
2018/06/04 Python
实时获取Python的print输出流方法
2019/01/07 Python
python打印n位数“水仙花数”(实例代码)
2019/12/25 Python
基于python实现计算两组数据P值
2020/07/10 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
html5 worker 实例(一) 为什么测试不到效果
2013/06/24 HTML / CSS
雅诗兰黛美国官网:Estee Lauder美国
2016/07/21 全球购物
安全检查与奖惩制度
2014/01/23 职场文书
大学生期末自我鉴定
2014/02/01 职场文书
《长城和运河》教学反思
2014/04/14 职场文书
一年级学生评语大全
2014/04/21 职场文书
员工团队活动方案
2014/08/28 职场文书
安全第一课观后感
2015/06/18 职场文书
致毕业季:你如何做好自己的职业生涯规划书?
2019/07/01 职场文书
2019年自助餐厅创业计划书模板
2019/08/22 职场文书