iconv函数库可以完成各种字符集之间的转换,是PHP编程中不可或缺的基础函数库。本文内容是借鉴网上其他资源,再结合自己的实践,有需要的朋友可以参考。 今天在网上修改论文的时候遇到了iconv函数。了解 ? 1 2 3 4header('Content-Type:application/vnd.ms-excel;charset=UTF-8"'); $name=iconv('utf-8','gb2312',$data['year'].'年份第一个'.$data['period'].'periodaddressbook'); header('Content-Disposition:attachment;filename="'.$name.'.xls"'); header('Cache-Control:max-age=0'); 这段代码的意思是把utf-8格式转换成gb2312格式,然后赋值$name,这样导出excel文件的名字时,就是$name的中文名字。 下面是这个函数的详细扩展用法 ? 1iconv("UTF-8","GB2312//IGNORE",$data) ignore表示忽略转换时的错误,如果没有ignore参数,这个字符之后的所有字符串都不能保存。 这个iconv()函数,在php5中是内置的,谢谢。 例子: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 echo$str='你好,这里是卖咖啡的!'; echo''; echoiconv('GB2312','UTF-8',$str);//将字符串编码由GB2312改为UTF-8 echo''; echoiconv_substr($str,1,1,'UTF-8');//根据字符数而不是字节数截取 print_r(iconv_get_encoding());//获取当前页面编码信息 echoiconv_strlen($str,'UTF-8');//获取设置编码字符串的长度 //还有这样的用法 $content=iconv("UTF-8","gbk//TRANSLIT",$content); ?> iconv不是PHP的默认函数,也是默认安装的模块。需要安装才能使用。 如果是windows2000+php,可以修改php.ini文件,去掉“;”在extension=php_iconv.dll之前,需要把你原来的php安装文件下的iconv.dll复制到你的winnt/system32下(如果你的dll指向这个目录) 在linux环境下,使用静态安装方式,在configure的时候多加一项--with-iconv,phpinfo可以看到iconv项。(Linux7.3+Apache4.06+php4.3.2), 下载:ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.8.tar.gz 安装: ?5#cplibiconv-1.8.tar.gz/usr/local/src #tarzxvflib* #./configure--prefix=/usr/local/libiconv #make #makeinstall 编译php #./configure--prefixdomainnametransaction=/usr/local/php4.3.2--with-iconv=/usr/local/libiconv/ used简单例子: ? 1 2 3 echoiconv("gb2312","ISO-8859-1","we"); ?> PHP中mb_convert_encoding和iconv函数介绍 mb_convert_encoding这个函数用于转换编码。本来不懂程序编码的概念,现在好像有点豁然开朗了。 不过英文一般不会有编码问题,只有中文数据才会有这个问题。比如你用ZendStudio或者Editplus写程序的时候用的是gbk编码。如果数据需要入库,而数据库的编码是utf8,那么此时必须转换数据的编码,否则入库时会变成乱码。.
