php中iconv函数使用办法

将七个短信接口代码从apache迁移到nginx+php-fpm后,发掘无法产生短信了,查看php日志,

近日在做三个顺序,须要利用iconv函数把抓取来过的utf-8编码的页面转成gb2312,
发掘独有用iconv函数把抓取过来的数码一转码多少就能无故的少一些。

iconv函数库可以幸不辱命种种字符集间的调换,是php编制程序中不得缺点和失误的底子函数库。 
1、下载libiconv函数库 
2、解压缩tar -zxvf libiconv-1.9.2.tar.gz; 
3、安装libiconv 
       #configure –prefix=/usr/local/iconv 
       #make 
       #make install 
4、重新编写翻译php 扩大编写翻译参数–with-iconv=/usr/local/iconv 

利用file_get_contents展开文件或搜集远程服务器文件假如文名或url中蒙受汉字汉语那么会产出failed
to open stream:Lnvalid argument in错误。

[25-Sep-2014 20:15:21] WARNING: [pool www] child 9617 said into
stderr: “NOTICE: PHP message: PHP Fatal error:  Call to
undefined function
mb_convert_encoding() in /data/htdocs/xx.php on line 13″

iconv函数库能够成功种种字符集间的改换,是php编制程序中不得缺点和失误的功底函数库。 

windows下
不久前在做二个小偷程序,须要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312,
开掘唯有用iconv函数把抓取过来的数码一转码数量就能够无故的少一些。 
让自家忧愁了好一阵子,去英特网一查资料才知道那是iconv函数的多个bug。iconv在转移字符”—”到gb2312时会出错   
杀鸡取蛋办法很粗大略,便是在须求转成的编码后加 “//IGNORE”  也便是iconv函数第四个参数后.如下:  

 

察觉函数mb_convert_encoding没概念,瞧着像有些模块没装,google了把,要装个mbstring扩张,从前都是一下子装好些个扩展(固然不精通那么些扩大是干啥的,依据互连网文书档案来),未来是要选择必要哪些装哪个,逼格略有升高(最少那样能让自家领会哪些模块是干啥的)。

1、下载libiconv函数库 
2、解压缩tar -zxvf libiconv-1.9.2.tar.gz; 
3、安装libiconv 
       #configure –prefix=/usr/local/iconv 
       #make 
       #make install 
4、重新编写翻译php 扩大编写翻译参数–with-iconv=/usr/local/iconv 

以下为引用的剧情: 

明天蒙受二个很困难的主题材料,顾客用ftp向服务器传了叁个文本,可是却无力回天被前后相继识别.查看代码后,未有发觉难点,最终重演流程发掘,顾客上传的公文是中文命名的.于是小做测量检验开掘,file_get_contents函数尽然不补助汉语文件名文件.

mb-convert-encoding
string mb_convert_encoding ( string $str , string $to_encoding [,
mixed $from_encoding = mb_internal_encoding() ] )

php中iconv函数使用办法。windows下
不久前在做三个小偷程序,需求用到iconv函数把抓取来过的utf-8编码的页面转成gb2312,
发掘唯有用iconv函数把抓取过来的数码一转码数量就能够无故的少一些。 
让自家苦闷了好一阵子,去网络一查资料才知晓那是iconv函数的一个bug。iconv在转移字符”—”到gb2312时会出错   
焚林而猎办法相当粗略,正是在须求转成的编码后加 “//IGNORE”  也正是iconv函数第1个参数后.如下:  

复制代码代码如下:

       原有代码如下:

将 string 类型 str 的字符编码从可选的 from_encoding 转换到
to_encoding。

以下为引用的内容: 

iconv(“UTF-8″,”GB2312//IGNORE”,$data) 

              $filename=’哈.txt’;

官方网站文书档案 
需求设置mbstring扩充库,假诺已经编写翻译好的php能够那样热编译下

复制代码代码如下:

ignore的情趣是忽视调换时的荒唐,若无ignore参数,全部该字符后边的字符串都力不能够及被封存。  

               echo file_get_contents(‘./’.$filename);

 代码如下

iconv(“UTF-8″,”GB2312//IGNORE”,$data) 

复制代码代码如下:

      实行现在显示结果:

cd /tmp/php-5.3.28/ext/mbstring/
usr/local/services/php/bin/phpize
./configure –with-php-config=/usr/local/services/php/bin/php-config
make && make install
vim /usr/local/services/php/etc/php.ini
extension=”/usr/local/services/php/lib/php/extensions/no-debug-non-zts-20090626/mbstring.so”;
 iconv
string iconv ( string in_charset, string out_charset, string str )

ignore的乐趣是忽视调换时的失实,如果未有ignore参数,全数该字符前面包车型客车字符串都力无法及被保存。  

<?php 
echo $str= ‘你好,这里是卖咖啡!’; 
echo ‘<br />’; 
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’); //获得设定编码的字符串长度 
//也是有这么用的 
$content = iconv(“UTF-8″,”gbk//TRANSLIT”,$content); 
?> 

亚洲必赢官网 1

iconv函数库可以一呵而就各样字符集间的调换
注意:第一个参数,除了能够钦点要中间转播到的编码以外,还足以追加多个后缀://TRANSLIT
和 //IGNORE,在那之中 //TRANSLIT
会自动将无法一贯转接的字符产生三个或多个像样的字符,//IGNORE
会忽略掉不能够转化的字符,而暗中同意效果是从第一个违法字符截断。
Returns the converted string or FALSE on failu

复制代码代码如下:

iconv不是php的暗中认可函数,也是暗中认可安装的模块。需求安装才干用的。 
假设若windows贰仟+php,你能够修改php.ini文件,将extension=php_iconv.dll前的”;”去掉,同时您要copy你的原php安装文件下的iconv.dll到你的winnt/system32下(要是您的dll指向的是以此目录) 
在linux意况下,用静态安装的秘诀,在configure时加多一项
–with-iconv就足以了,phpinfo看获得iconv的项。(Linux7.3+Apache4.06+php4.3.2), 

       悲剧开首.

官方网址地址 

<?php 
echo $str= ‘你好,这里是卖咖啡!’; 
echo ‘<br />’; 
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’); //获得设定编码的字符串长度 
//也是有像这种类型用的 
$content = iconv(“UTF-8″,”gbk//TRANSLIT”,$content); 
?> 

下载:ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.8.tar.gz 
安装: 
#cp libiconv-1.8.tar.gz /usr/local/src 
#tar zxvf lib* 
#./configure –prefix=/usr/local/libiconv 
#make 
#make install 
编译php 
#./configure –prefix=/usr/local/php4.3.2
–with-iconv=/usr/local/libiconv/ 
动用的简短例子: 
<?php 
echo iconv(“gb2312″,”ISO-8859-1″,”我们”); 
?>

 

曾经安装好php的,同样也得以运用方面包车型大巴办法安装iconv模块

iconv不是php的暗中同意函数,也是暗中同意安装的模块。需求设置技巧用的。 
如要是windows三千+php,你能够修改php.ini文件,将extension=php_iconv.dll前的”;”去掉,同时要copy你的原php安装文件下的iconv.dll到你的winnt/system32下(假使您的dll指向的是以此目录) 
在linux环境下,用静态安装的形式,在configure时加多一项
–with-iconv就足以了,phpinfo看得到iconv的项。(Linux7.3+Apache4.06+php4.3.2), 

**PHP中的mb_convert_encoding与iconv函数介绍 

     
 之后试了累累确定方法,展现嫌疑是或不是编码难题,文件编码,代码编码贰遍遍的排查,可是都以很匹配的啊.

mb_convert_encoding例子
mb_convert_encoding这么些函数是用来转变编码的。希腊语平日不会存在编码难点,唯有中文数据才会有那些标题。比如您用Zend
Studio或Editplus写程序时,用的是gbk编码,假如数额须求入数据库,而数据库的编码为utf8时,那时将在把数据开展编码调换,不然进到数据库就能够产生乱码

下载:ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.8.tar.gz 
安装: 
#cp libiconv-1.8.tar.gz /usr/local/src 
#tar zxvf lib* 
#./configure –prefix=/usr/local/libiconv 
#make 
#make install 
编译php 
#./configure –prefix=/usr/local/php4.3.2
–with-iconv=/usr/local/libiconv/ 
运用的简单例子: 
<?php 
echo iconv(“gb2312″,”ISO-8859-1″,”我们”); 
?>

**mb_convert_encoding这些函数是用来改造编码的。原来一向对程序编码这一概念不清楚,但是未来附近有一些开窍了。 
可是拉脱维亚语平时不会存在编码难题,唯有普通话数据才会有其一题目。举个例子您用Zend
Studio或Editplus写程序时,用的是gbk编码,若是数额需求入数据库,而数据库的编码为utf8时,那时即将把数量举办编码调换,不然进到数据库就能够化为乱码。 

     
 之后查了相关资料却未曾找到,于是google了须臾间意识有人蒙受这些主题材料,说是系统编码的标题,于是从头对文本名张开转码.

 
做一个GBK To UTF-8

**PHP中的mb_convert_encoding与iconv函数介绍 

mb_convert_encoding的用法见官方: 
 

       文件用的是utf-8编码,然而系统默以为gbk.所以先把公文名转移gbk然后再读取.

 代码如下

**mb_convert_encoding那一个函数是用来改动编码的。原来一向对程序编码这一概念不知道,不过以后左近有一点点开窍了。 
不过意大利共和国语平时不会设有编码难点,独有中文数据才会有其一难点。举例你用Zend
Studio或Editplus写程序时,用的是gbk编码,假使数额要求入数据库,而数据库的编码为utf8时,那时将要把多少开展编码调换,不然进到数据库就能够化为乱码。 

做一个GBK To UTF-8 
< ?php 
header(“content-Type: text/html; charset=Utf-8”); 
echo mb_convert_encoding(“妳係小编的友仔”, “UTF-8”, “GBK”); 
?> 

       

<?php
header(“content-Type: text/html; charset=Utf-8″);
echo mb_convert_encoding(“???S作者的友仔”, “UTF-8″, “GBK”);
?>

mb_convert_encoding的用法见官方: 
 

再来个GB2312 To Big5 
< ?php 
header(“content-Type: text/html; charset=big5”); 
echo mb_convert_encoding(“你是作者的相恋的人”, “big5”, “GB2312”); 
?> 
可是要运用方面包车型地铁函数需求安装不过急需先enable mbstring 扩充库。 

           
  $filename=’哈.txt’;

再来个GB2312 To Big5

做一个GBK To UTF-8 
< ?php 
header(“content-Type: text/html; charset=Utf-8”); 
echo mb_convert_encoding(“妳係笔者的友仔”, “UTF-8”, “GBK”); 
?> 

PHP中的别的三个函数iconv也是用来调换字符串编码的,与上函数功用相似。 

               $filename=iconv(‘utf-8′,’gbk’,$filename);
//gbk或者gb2312都可以

 代码如下

再来个GB2312 To Big5 
< ?php 
header(“content-Type: text/html; charset=big5”); 
echo mb_convert_encoding(“你是自己的相恋的人”, “big5”, “GB2312”); 
?> 
不过要运用方面包车型大巴函数供给安装可是急需先enable mbstring 扩大库。 

上边还会有一对详尽的例子: 
iconv — Convert string to requested character encoding 
(PHP 4 >= 4.0.5, PHP 5) 
mb_convert_encoding — Convert character encoding 
(PHP 4 >= 4.0.6, PHP 5) 

               //echo
file_get_contents(mb_convert_encoding(‘./哈.txt’, ‘gbk’, ‘utf-8’));
(另一种方法)

<?php
header(“content-Type: text/html; charset=big5″);
echo mb_convert_encoding(“你是自己的情侣”, “big5″, “GB2312″);
?>

PHP中的另外四个函数iconv也是用来转换字符串编码的,与上函数功效相似。 

用法: 
string mb_convert_encoding ( string str, string to_encoding [, mixed
from_encoding] ) 
需要先enable mbstring 扩展库,在 php.ini里将;
extension=php_mbstring.dll 前面的 ; 去掉 
mb_convert_encoding
能够内定三种输入编码,它会基于内容自动识别,可是进行功效比iconv差太多; 

               echo
file_get_contents(‘./’.$filename);

mb_strtolower() – 使字符串小写
mb_strtoupper() – 使字符串大写
strtolower() – 将字符串转化为题写
strtoupper() – 将字符串转化为题写
ucfirst() – 将字符串的首字母转换为题写
ucwords() –
将字符串中各样单词的首字母调换为题写
 

上边还会有一点点详实的事例: 
亚洲必赢官网 ,iconv — Convert string to requested character encoding 
(PHP 4 >= 4.0.5, PHP 5) 
mb_convert_encoding — Convert character encoding 
(PHP 4 >= 4.0.6, PHP 5) 

string iconv ( string in_charset, string out_charset, string str ) 
只顾:第二个参数,除了能够钦定要转正到的编码以外,仍是能够扩充七个后缀://TRANSLIT
和 //IGNORE,在那之中 //TRANSLIT
会自动将不能够直接倒车的字符产生四个或多少个八九不离十的字符,//IGNORE
会忽略掉不能转化的字符,而私下认可效果是从第叁个地下字符截断。 
Returns the converted string or FALSE on failure. 

       读取成功. OK,马到成功.

iconv例子

用法: 
string mb_convert_encoding ( string str, string to_encoding [, mixed
from_encoding] ) 
需要先enable mbstring 扩展库,在 php.ini里将;
extension=php_mbstring.dll 前面的 ; 去掉 
mb_convert_encoding
能够钦命多种输入编码,它会基于内容自动识别,可是实行功效比iconv差太多;

使用: 

 

把gb2312置换成utf-8:

string iconv ( string in_charset, string out_charset, string str ) 
只顾:首个参数,除了能够钦点要转化到的编码以外,还能扩展八个后缀://TRANSLIT
和 //IGNORE,当中 //TRANSLIT
会自动将无法直接转化的字符形成三个或多个八九不离十的字符,//IGNORE
会忽略掉无法转化的字符,而暗许效果是从第多个地下字符截断。 
Returns the converted string or FALSE on failure. 

开采iconv在转变字符”—”到gb2312时会出错,若无ignore参数,全数该字符前面包车型客车字符串都力不可能支被保留。不管怎么着,那一个”—”都不能转变来功,不能输出。
另外mb_convert_encoding未有这么些bug. 

ps  
iconv()与mb_convert_encoding();

 代码如下

使用: 

经常情形下用
iconv,唯有当蒙受无法分明原编码是何种编码,大概iconv转化后不可能平日展现时才用mb_convert_encoding
函数. 

$text=iconv(“GB2312″,”UTF-8”,$text);

发觉iconv在退换字符”—”到gb2312时会出错,若无ignore参数,全部该字符前面包车型客车字符串都力不能及被封存。不管什么样,那一个”—”都没办法儿转换来功,无法输出。
其余mb_convert_encoding未有那几个bug. (脚本学堂 www.jbxue.com)

from_encoding is specified by character code name before conversion. it
can be array or string – comma separated enumerated list. If it is not
specified, the internal encoding will be used. 
/* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert str
to UCS-2LE */ 
$str = mb_convert_encoding($str, “UCS-2LE”, “JIS, eucjp-win,
sjis-win”); 
/* “auto” is expanded to “ASCII,JIS,UTF-8,EUC-JP,SJIS” */ 
$str = mb_convert_encoding($str, “EUC-JP”, “auto”); 

iconv函数库能够达成种种字符集间的转换,是php编程中不可缺点和失误的基础函数库。 
1、下载libiconv函数库 
2、解压缩tar -zxvf libiconv-1.9.2.tar.gz; 
3、安装libiconv 
       #configure –prefix=/usr/local/iconv 
       #make 
       #make install 
4、重新编译php 扩张编写翻译参数–with-iconv=/usr/local/iconv 

在用$text=iconv(“UTF-8″,”GB2312″,$text)过程中,假若遇上有个别特意字符时,如:”—”,俄语名中的”.”等等字符,调换就断掉了。那些字符后的文字都无法继续转变了。

貌似景观下用
iconv,唯有当际遇不能显著原编码是何种编码,恐怕iconv转化后无法寻常突显时才用mb_convert_encoding
函数. 

例子: 
$content = iconv(”GBK”, “UTF-8″, $content); 
$content = mb_convert_encoding($content, “UTF-8″,”GBK”); 

windows下
前不久在做一个小偷程序,须求用到iconv函数把抓取来过的utf-8编码的页面转成gb2312,
开采只有用iconv函数把抓取过来的数目一转码数据就可以无故的少一些。 
让本身忧愁了好一阵子,去网络一查资料才清楚那是iconv函数的贰个bug。iconv在转变字符”—”到gb2312时会出错   
消除方法很简短,就是在急需转成的编码后加 “//IGNORE”  也正是iconv函数第一个参数后.如下:  

针对那的题材,可以用如下代码达成:

from_encoding is specified by character code name before conversion. it
can be array or string – comma separated enumerated list. If it is not
specified, the internal encoding will be used. 
/* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert str
to UCS-2LE */ 
$str = mb_convert_encoding($str, “UCS-2LE”, “JIS, eucjp-win,
sjis-win”); 
/* “auto” is expanded to “ASCII,JIS,UTF-8,EUC-JP,SJIS” */ 
$str = mb_convert_encoding($str, “EUC-JP”, “auto”); 

php中动用iconv函数时便于忽略的参数  明天在拍卖抓取内容的时候,当使用iconv举行编码转换的时候,发掘结果会搁浅,猜是字符集的主题材料,惦念怎么跳过对象字符集空中楼阁的字符,查手册发掘iconv的函数唯有四个参数,好像非常,然后查英特网有些人说可以,但是很意外怎么落实,最终开掘保加利亚共和国(Народна република България)语描述有说能够加标记到目的编码前边:“TRANSLIT”,很窝心怎么加呢?原来是先加“//”,真是忧愁,竟然有这么的设计 
原型: $txtContent = iconv(“utf-8”,’GBK’,$txtContent); 

以下为援用的开始和结果: 

 代码如下

例子: 
$content = iconv(”GBK”, “UTF-8″, $content); 
$content = mb_convert_encoding($content, “UTF-8″,”GBK”); 

至极参数:iconv(“UTF-8″,”GB2312//IGNORE”,$data) 

复制代码代码如下:

$text=iconv(“UTF-8″,”GBK”,$text);

php中利用iconv函数时轻易忽略的参数  前日在管理抓取内容的时候,当使用iconv举行编码转变的时候,开掘结果会浅尝辄止,猜是字符集的主题材料,思考怎么跳过对象字符集不设有的字符,查手册发掘iconv的函数独有四个参数,好像特别,然后查英特网有一些人讲能够,不过很意外怎么落到实处,末了开采乌Crane语描述有说能够加标志到对象编码前面:“TRANSLIT”,很抑郁怎么加呢?原本是先加“//”,真是烦恼,竟然有如此的设计 
原型: $txtContent = iconv(“utf-8”,’GBK’,$txtContent); 

八个可选的扶持参数:TRANSLIT和IGNORE ,(当中IGNORE
就是说遭遇不恐怕转移的就跳过)。 Description 

iconv(“UTF-8″,”GB2312//IGNORE”,$data) 

你从未看错,就那样轻便,不行使gb2312,而写成GBK,就足以了。

新鲜参数:iconv(“UTF-8″,”GB2312//IGNORE”,$data) 

string iconv ( string in_charset, string out_charset, string str ) 

ignore的意味是忽视调换时的错误,若无ignore参数,全部该字符前面包车型地铁字符串都不只怕被保留。  

再有一种艺术,第2个参数,加上//IGNORE,忽略错误,如下:

四个可选的增派参数:TRANSLIT和IGNORE ,(当中IGNORE
正是说遭逢不恐怕转移的就跳过)。 Description 

Performs a character set conversion on the string str from in_charset
to out_charset. Returns the converted string or FALSE on failure. 

复制代码代码如下:

 代码如下

string iconv ( string in_charset, string out_charset, string str ) 

If you append the string //TRANSLIT to out_charset transliteration is
activated. This means that when a character can’t be represented in the
target charset, it can be approximated through one or several similarly
looking characters. If you append the string //IGNORE, characters that
cannot be represented in the target charset are silently discarded.
Otherwise, str is cut from the first illegal character.

<?php 
echo $str= ‘你好,这里是卖咖啡!’; 
echo ‘<br />’; 
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’); //获得设定编码的字符串长度 
//也可以有那样用的 
$content = iconv(“UTF-8″,”gbk//TRANSLIT”,$content); 
?> 

iconv(“UTF-8″,”GB2312//IGNORE”,$data);

Performs a character set conversion on the string str from in_charset
to out_charset. Returns the converted string or FALSE on failure. 

iconv不是php的暗许函数,也是默许安装的模块。需求设置技术用的。 
一经是windows3000+php,你能够修改php.ini文件,将extension=php_iconv.dll前的”;”去掉,同有的时候候你要copy你的原php安装文件下的iconv.dll到你的winnt/system32下(假使您的dll指向的是以此目录) 
在linux景况下,用静态安装的法门,在configure时增加一项
–with-iconv就足以了,phpinfo看获得iconv的项。(Linux7.3+Apache4.06+php4.3.2), 

通常境况下用
iconv,只有当碰着不可能鲜明原编码是何种编码,或然iconv转化后不可能寻常显示时才用mb_convert_encoding
函数。

If you append the string //TRANSLIT to out_charset transliteration is
activated. This means that when a character can’t be represented in the
target charset, it can be approximated through one or several similarly
looking characters. If you append the string //IGNORE, characters that
cannot be represented in the target charset are silently discarded.
Otherwise, str is cut from the first illegal character.

下载:ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.8.tar.gz 
安装: 
#cp libiconv-1.8.tar.gz /usr/local/src 
#tar zxvf lib* 
#./configure –prefix=/usr/local/libiconv 
#make 
#make install 
编译php 
#./configure –prefix=/usr/local/php4.3.2
–with-iconv=/usr/local/libiconv/ 
选择的轻便例子: 
<?php 
echo iconv(“gb2312″,”ISO-8859-1″,”我们”); 
?>

 代码如下

**PHP中的mb_convert_encoding与iconv函数介绍 

$content = iconv(“GBK”, “UTF-8″, $content);
$content = mb_convert_encoding($content, “UTF-8″, “GBK”);

**mb_convert_encoding那个函数是用来更换编码的。原本一贯对前后相继编码这一定义不明了,然而以往相仿有个别开窍了。 
唯独克罗地亚(Croatia)语通常不会设有编码难点,唯有中文数据才会有其一标题。比方您用Zend
Studio或Editplus写程序时,用的是gbk编码,纵然数额须要入数据库,而数据库的编码为utf8时,那时就要把数量进行编码转变,不然进到数据库就能化为乱码。 

mb_convert_encoding的用法见官方: 
 

做一个GBK To UTF-8 
< ?php 
header(“content-Type: text/html; charset=Utf-8”); 
echo mb_convert_encoding(“妳係我的友仔”, “UTF-8”, “GBK”); 
?> 

再来个GB2312 To Big5 
< ?php 
header(“content-Type: text/html; charset=big5”); 
echo mb_convert_encoding(“你是本人的仇人”, “big5”, “GB2312”); 
?> 
唯独要运用方面包车型客车函数必要安装不过急需先enable mbstring 扩大库。 

PHP中的别的贰个函数iconv也是用来调换字符串编码的,与上函数成效相似。 

上面还应该有部分详实的例证: 
iconv — Convert string to requested character encoding 
(PHP 4 >= 4.0.5, PHP 5) 
mb_convert_encoding — Convert character encoding 
(PHP 4 >= 4.0.6, PHP 5) 

用法: 
string mb_convert_encoding ( string str, string to_encoding [, mixed
from_encoding] ) 
需要先enable mbstring 扩展库,在 php.ini里将;
extension=php_mbstring.dll 前面的 ; 去掉 
mb_convert_encoding
可以内定多样输入编码,它会基于内容自动识别,可是实行效用比iconv差太多; 

string iconv ( string in_charset, string out_charset, string str ) 
小心:第一个参数,除了能够钦赐要转账到的编码以外,仍是可以够追加三个后缀://TRANSLIT
和 //IGNORE,个中 //TRANSLIT
会自动将不可能一向转化的字符形成二个或三个八九不离十的字符,//IGNORE
会忽略掉不能够转化的字符,而暗中同意效果是从第一个地下字符截断。 
Returns the converted string or FALSE on failure. 

使用: 

开采iconv在更改字符”—”到gb2312时会出错,若无ignore参数,全体该字符后边的字符串都敬谢不敏被封存。不管如何,那些”—”都没有办法儿转移成功,不能输出。
其余mb_convert_encoding未有这几个bug. 

诚如处境下用
iconv,只有当境遇无法明确原编码是何种编码,恐怕iconv转化后不恐怕符合规律展现时才用mb_convert_encoding
函数. 

from_encoding is specified by character code name before conversion. it
can be array or string – comma separated enumerated list. If it is not
specified, the internal encoding will be used. 
/* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert str
to UCS-2LE */ 
$str = mb_convert_encoding($str, “UCS-2LE”, “JIS, eucjp-win,
sjis-win”); 
/* “auto” is expanded to “ASCII,JIS,UTF-8,EUC-JP,SJIS” */ 
$str = mb_convert_encoding($str, “EUC-JP”, “auto”); 

例子: 
$content = iconv(”GBK”, “UTF-8″, $content); 
$content = mb_convert_encoding($content, “UTF-8″,”GBK”); 

php中使用iconv函数时便于忽略的参数  明日在拍卖抓取内容的时候,当使用iconv进行编码转变的时候,开掘结果会半途而返,猜是字符集的标题,思考怎么跳过对象字符集不设有的字符,查手册开掘iconv的函数唯有四个参数,好像极度,然后查互连网有一些人说能够,可是很奇异怎么落到实处,最终开掘保加戈亚尼亚语描述有说能够加标记到对象编码前边:“TRANSLIT”,很窝囊怎么加呢?原本是先加“//”,真是忧愁,竟然有如此的设计 
原型: $txtContent = iconv(“utf-8”,’GBK’,$txtContent); 

独特参数:iconv(“UTF-8″,”GB2312//IGNORE”,$data) 

四个可选的扶植参数:TRANSLIT和IGNORE ,(在那之中IGNORE
正是说遭逢不可能调换的就跳过)。 Description

string iconv ( string in_charset, string out_charset, string str ) 

Performs a character set conversion on the string str from in_charset
to out_charset. Returns the converted string or FALSE on failure. 

If you append the string //TRANSLIT to out_charset transliteration is
activated. This means that when a character can’t be represented in the
target charset, it can be approximated through one or several similarly
looking characters. If you append the string //IGNORE, characters that
cannot be represented in the target charset are silently discarded.
Otherwise, str is cut from the first illegal character.

网站地图xml地图