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的分页功能
Mar 21 PHP
php Static关键字实用方法
Jun 04 PHP
php中利用post传递字符串重定向的实现代码
Apr 21 PHP
php安全之直接用$获取值而不$_GET 字符转义
Jun 03 PHP
一个简单且很好用的php分页类
Oct 26 PHP
Smarty变量调节器失效的解决办法
Aug 20 PHP
PHP实现图片自动清理的方法
Jul 08 PHP
WordPress网站性能优化指南
Nov 18 PHP
PHP中的数组处理函数实例总结
Jan 09 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
Feb 11 PHP
PHP FileSystem 文件系统常用api整理总结
Jul 12 PHP
php计数排序算法的实现代码(附四个实例代码)
Mar 31 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
基于session_unset与session_destroy的区别详解
2013/06/03 PHP
php使用for语句输出三角形的方法
2015/06/09 PHP
讲解WordPress开发中一些常用的debug技巧
2015/12/18 PHP
js 异步处理进度条
2010/04/01 Javascript
js验证是否为数字的总结
2013/04/14 Javascript
基于js实现投票的实例代码
2015/08/04 Javascript
13个PHP函数超实用
2015/10/21 Javascript
学习jQuey中的return false
2015/12/18 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
2017/01/23 Javascript
NodeJS链接MySql数据库的操作方法
2017/06/27 NodeJs
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
详解IOS微信上Vue单页面应用JSSDK签名失败解决方案
2018/11/14 Javascript
详解ES6中的Map与Set集合
2019/03/22 Javascript
JavaScript实现简单贪吃蛇效果
2020/03/09 Javascript
js实现日历
2020/11/07 Javascript
[42:22]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第一局
2016/02/27 DOTA
Python统计日志中每个IP出现次数的方法
2015/07/06 Python
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
浅谈python中set使用
2016/06/30 Python
python基础教程之匿名函数lambda
2017/01/17 Python
python读取excel表格生成erlang数据
2017/08/26 Python
一些Centos Python 生产环境的部署命令(推荐)
2018/05/07 Python
Python实现的多叉树寻找最短路径算法示例
2018/07/30 Python
解决python3读取Python2存储的pickle文件问题
2018/10/25 Python
外贸业务员工作职责
2014/01/06 职场文书
出纳工作岗位责任制
2014/02/02 职场文书
运动会方阵解说词
2014/02/12 职场文书
群众路线教师自我剖析材料
2014/09/29 职场文书
单方离婚协议书范本(2014版)
2014/09/30 职场文书
布达拉宫导游词
2015/02/02 职场文书
2015年端午节国旗下演讲稿
2015/03/19 职场文书
2015年个人审计工作总结
2015/04/07 职场文书
小平您好观后感
2015/06/09 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书
Redis安装启动及常见数据类型
2021/04/14 Redis
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL