【转载】php中iconv函数使用方法

原文: http://www.phpweblog.net/star65225692/archive/2011/03/23/7524.html
 
 
在选择用什么工具开发,惟一的指导标准就是:用最少的人力,最少的时间开发JavaEye网站,而且后期维护和持续升级,乃至重写的时候,代价最小。

首先排除Java和C#,代码太多太麻烦; 
其次排除PHP,项目一大,代码一多,代码的管理很成问题,PHP缺少一个起码的包管理机制; 

a.上iconv的官方下载站点
http://ftp.gnu.org/pub/gnu/libiconv/
下面Windows版的iconv文件:libiconv-1.9.1.bin.woe32.zip
将这文件解压,将bin/下面的charset.dll,iconv.dll,iconv.exe拷贝到c:/windows/ (或其它的系统PATH中)
(ipaddr提醒你,这步是必须的,php_iconv.dll也是调用GNU的iconv库的,因此,先要安装GNU的iconv库)

b.开启php.ini里面的php_iconv.dllphp

c.重启Apache,再在phpinfo();检测是否开启iconv。
最近在作一个程序,须要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会平白无故的少一些。 让我郁闷了好一下子,去网上一查资料才知道这是iconv函数的一个bug。iconv在转换字符”—”到gb2312时会出错
解决方法很简单,就是在须要转成的编码后加 “//IGNORE” 也就是iconv函数第二个参数后.以下:
如下为引用的内容:
iconv(”UTF-8″,”GB2312//IGNORE”,$data)
ignore的意思是忽略转换时的错误,若是没有ignore参数,全部该字符后面的字符串都没法被保存。html

这个iconv()这个函数,在php5中是内置的.谢谢.web

列子
<?php
echo $str= ‘你好,这里是卖咖啡!’;
echo ‘<br />’;windows

echo iconv(’GB2312′, ‘UTF-8′, $str);      //将字符串的编码从GB2312转到UTF-8
echo ‘<br />’;函数

echo iconv_substr($str, 1, 1, ‘UTF-8′);   //按字符个数截取而非字节         
print_r(iconv_get_encoding());            //获得当前页面编码信息工具

echo iconv_strlen($str, ‘UTF-8′);         //获得设定编码的字符串长度post

 

//也有这样用的网站

   $content = iconv(”UTF-8″,”gbk//TRANSLIT”,$content);
?>编码


当时重点考察Python和Ruby,由于有豆瓣的先例,开始很倾向于Python,并且我那个时候对Python比较熟悉,还曾经痴迷过一段时间的wxPython,对Zope和plone也有一些研究。 货运代理

但后来比较了Rails和Django以后,就倾向于Rails了,差距实在太大了,并且当时Django很不成熟,在很早期的版本。其实即使如今Django和Rails的差距也没有缩小过。 

但让我最终下定决心的是potian在05年就大规模使用Rails的实际工程经验,我曾经去杭州就我比较质疑的问题当面请教过他,和他谈过之后,就决定用Rails了。spa

相关文章
相关标签/搜索