如何不使用iconv进行字符编码转换

时间:2015-05-14  来源:技术文章  作者:南京达内

  技术诞生的初衷是为了解决问题,所以在学习本文知识之前,先来看看问题是如何出现的。推荐观看【达内视频教程

  任务:修改一个管理系统,使查询数据能够导出到excel中去。

  方法:服务器apache2.2.4 + php4.4.6,使用php4内置的mysql模块,使用pear来完成导出到excel的工作。

  发现:终端用户都使用中文IE,都是GBK编码,但是数据库里的数据是UTF8编码,所以需要做编码转换。

  问题:服务器上的php4没有iconv模块,难以进行编码转换。

  解决思路一:让excel使用utf8编码,使用:header("Content-type: application/vnd.ms-excel; charset=UTF-8"),但由于是二进制数据,这里的charset不能对结果产生影响。

  解决思路二:给服务器php安装iconv模块。但结果是:安装php4只产生libphp4.a而没有libphp4.so。google一下发现这是php的bug,但是用了最新的php4的代码问题依然存在,也有人说是apache编译参数不对,重新编译apache后还是有问题。安装php5,php5中已经去掉了内置的mysql模块,需要单独安装mysql,这可能会出现版本冲突问题而影响服务器上的众多网站,遂放弃。

  解决思路三:尝试寻找一种不使用iconv完成编码转换任务的方法。搜索到了Php News Reader项目。这个项目的一个附加模块就是完全不使用iconv,而通过查编码转换表进行编码转换。

  总结:解决编码转换问题时,可以不使用iconv进行字符编码转换,Php News Reader项目就是一个值得借鉴的例子。更多达内​软件教程>>http://www.xjktarena.com/jswz/

  • 上一篇:linux系统中如何增加swap分区大小
  • 下一篇:如何解决session被共享的问题
  • 达内南京新街口中心:南京市玄武区洪武北路121号苏苑大厦5楼  联系电话:025-66610022

    版权所有 南京达内软件有限公司 苏ICP备12008613号-4