½ñÌiÔÚÐÞ¸ÄÂÛÎÄÔÚÏßµÄʱºo£¬Óoµ½ÁËiconvÕa¸oº¯Êý¡£Ñ§Ï°Ò»ÏÂ
header('Content-Type: application/vnd.ms-excel;charset=UTF-8"');
$name=iconv('utf-8', 'gb2312', $data['year'].'Äe£¬µÚ'.$data['period'].'ÆÚͨÐż');
header('Content-Disposition: attachment;filename="' . $name . '.xls"');
header('Cache-Control: max-age=0');
Õa¶Î´uÂeµÄÒa˼£¬¾ÍÊÇ°Ñutf-8¸ñʽת»¯Îªgb2312µÄ¸ñʽ£¬È»ºo¸³Öµ¸ø$name,ÕaÑuµ¼³oexcelÎļþµÄÃu×ÖµÄʱºo£¬¾ÍÊÇÖÐÎĵÄ$nameµÄÃu×Ö¡£
ϱßÊǹØÓÚÕa¸oº¯ÊýµÄÏeϸºÍÑÓÉiÓÃ*¨
iconv("UTF-8","GB2312//IGNORE",$data)
ignoreµÄÒa˼ÊǺoÂÔת»»Ê±µÄ´iÎo£¬Èç¹uûÓÐignore²ÎÊý£¬ËuÓиÃ×ÖuºoÃaeµÄ×Öu´®¶¼ÎÞ*¨±»±£´ae¡£
Õa¸oiconv()Õa¸oº¯Êý,ÔÚphp5ÖÐÊÇÄÚÖõÄ.лл.
Àý×Ó£º
<?php
echo $str= 'ÄaºÃ,ÕaÀiÊÇÂo¿§*È!';
echo '<br />';
echo iconv('GB2312', 'UTF-8', $str); //½«×Ö*u´®µÄ±aÂe´ÓGB2312תµ½UTF-8
echo '<br />';
echo iconv_substr($str, 1, 1, 'UTF-8'); //°´×Ö*u¸oÊý½ØÈ¡¶ø*Ç×Ö½Ú
print_r(iconv_get_encoding()); //µÃµ½µ±Ç°Ò³Ãae±aÂeÐÅÏ¢
echo iconv_strlen($str, 'UTF-8'); //µÃµ½Ée¶¨±aÂeµÄ×Ö*u´®³¤¶È
//Ò²ÓÐÕaÑuÓõÄ
$content = iconv("UTF-8","gbk//TRANSLIT",$content);
?>
iconv²»ÊÇphpµÄĬÈϺ¯Êý£¬Ò²ÊÇĬÈÏ°²×°µÄÄ£¿e¡£ÐeÒª°²×°²ÅÄÜÓõġ£
Èç¹uÊÇwindows2000+php£¬Äa¿ÉÒÔÐÞ¸Äphp.iniÎļþ£¬½«extension=php_iconv.dllÇ°µÄ";"È¥µo£¬Í¬Ê±ÄaÒªcopyÄaµÄÔphp°²×°ÎļþϵÄiconv.dllµ½ÄaµÄwinnt/system32Ï£¨Èç¹uÄaµÄdllÖ¸ÏoµÄÊÇÕa¸oĿ¼£(C)
ÔÚlinux»¾³Ï£¬Óþ²Ì¬°²×°µÄ½Ê½£¬ÔÚconfigureʱ¼Ó¶aÒ»Ïi --with-iconv¾Í¿ÉÒÔÁË£¬phpinfo¿´µÃµ½iconvµÄÏi¡£(Linux7.3+Apache4.06+php4.3.2)£¬
ÏÂÔØ£º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
±aÒephp
ʹÓõļoµ¥Àý×Ó£º
<?php
echo iconv("gb2312","ISO-8859-1","ÎÒÃÇ");
?>
PHPÖеÄmb_convert_encodingÓeiconvº¯Êý½eÉÜ
mb_convert_encodingÕa¸oº¯ÊýÊÇÓÃÀ´×ª»»±aÂeµÄ¡£ÔÀ´Ò»Ö±¶Ô³ÌÐo±aÂeÕaÒ»¸ÅÄi²»Ài½a£¬²»¹ýÏÖÔÚºÃÏñÓеa¿ªÇÏÁË¡£
²»¹ýÓ¢ÎÄÒ»°a²»»a´aeÔÚ±aÂeÎÊÌa£¬Ö»ÓÐÖÐÎÄÊý¾Ý²Å»aÓÐÕa¸oÎÊÌa¡£±ÈÈçÄaÓÃZend Studio»oEditplusд³ÌÐoʱ£¬ÓõÄÊÇgbk±aÂe£¬Èç¹uÊý¾ÝÐeÒªÈeÊý¾Ý¿a£¬¶øÊý¾Ý¿aµÄ±aÂeΪutf8ʱ£¬Õaʱ¾ÍÒª°ÑÊý¾Ý½øÐбaÂeת»»£¬²»È»½øµ½Êý¾Ý¿a¾Í»a±a³ÉÂÒÂe¡£
mb_convert_encodingµÄÓè¼u¹Ù½£º
http://cn.php.net/manual/zh/function.mb-convert-encoding.php
×oÒ»¸oGBK To UTF-8
< ?php
header("content-Type: text/html; charset=Utf-8");
echo mb_convert_encoding("Š…‚SÎÒµÄÓÑ×Ð", "UTF-8", "GBK");
?>
ÔÙÀ´¸oGB2312 To Big5
< ?php
header("content-Type: text/html; charset=big5");
echo mb_convert_encoding("ÄaÊÇÎÒµÄÅoÓÑ", "big5", "GB2312");
?>
²»¹ýҪʹÓÃÉÏÃaeµÄº¯ÊýÐeÒª°²×°µ«ÊÇÐeÒªÏÈenable mbstring À(C)Õ¹¿a¡£
PHPÖеÄÁiÍaÒ»¸oº¯ÊýiconvÒ²ÊÇÓÃÀ´×ª»»×Ö*u´®±aÂeµÄ£¬ÓeÉϺ¯Êý¹¦ÄÜÏaËÆ¡£
ÏÂÃae»¹ÓÐÒ»Ð(C)ÏeϸµÄÀý×Ó£º
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] )
ÐeÒªÏÈenable mbstring À(C)Õ¹¿a£¬ÔÚ php.iniÀi½«; extension=php_mbstring.dll Ç°ÃaeµÄ ; È¥µo
mb_convert_encoding ¿ÉÒÔÖ¸¶¨¶aÖÖÊaÈe±aÂe£¬Ëu»a¸u¾ÝÄÚÈÝ×Ô¶¯Ê¶±ð,µ«ÊÇÖ´ÐÐЧÂʱÈiconv²iÌ«¶a£»
string iconv ( string in_charset, string out_charset, string str )
×¢Òa£ºµÚ¶þ¸o²ÎÊý£¬³ýÁË¿ÉÒÔÖ¸¶¨Òª×ª»¯µ½µÄ±aÂeÒÔÍa£¬»¹¿ÉÒÔÔo¼ÓÁ½¸oºo׺£º//TRANSLIT ºÍ //IGNORE£¬ÆaÖÐ //TRANSLIT »a×Ô¶¯½«²»ÄÜÖ±½Óת»¯µÄ×Öu±a³ÉÒ»¸o»o¶a¸o½uËƵÄ×Öu£¬//IGNORE »aºoÂÔµo²»ÄÜת»¯µÄ×Öu£¬¶øĬÈÏЧ¹uÊÇ´ÓµÚÒ»¸oǨ×Öu½Ø¶Ï¡£
Returns the converted string or FALSE on failure.
ʹÓãº
¢ÏÖiconvÔÚת»»×Öu¡±¡ª¡±µ½gb2312ʱ»a³o´i£¬Èç¹uûÓÐignore²ÎÊý£¬ËuÓиÃ×ÖuºoÃaeµÄ×Öu´®¶¼ÎÞ¨±»±£´ae¡£²»¹ÜÔoôÑu£¬Õa¸o¡±¡ª¡±¶¼Îިת»»³É¹¦£¬ÎÞ*¨Êa³o¡£ ÁiÍamb_convert_encodingûÓÐÕa¸obug.
Ò»°aÇe¿oÏÂÓà iconv£¬Ö»Óе±Óoµ½Îިȶ¨Ô±aÂeÊǺÎÖÖ±aÂe£¬»oÕßiconvת»¯ºoÎÞ*¨Õý³£ÏÔʾʱ²ÅÓÃ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¡a, $content);
$content = mb_convert_encoding($content, "UTF-8¡a,"GBK");
phpÖÐʹÓÃiconvº¯ÊýʱÈÝÒ׺oÂԵIJÎÊý
½ñÌiÔÚ´¦ÀiץȡÄÚÈݵÄʱºo£¬µ±²ÉÓÃiconv½øÐбaÂeת»»µÄʱºo£¬¢ÏÖ½a¹u»aÖжϣ¬²ÂÊÇ×Öu¼¯µÄÎÊÌa£¬¿¼ÂÇÔoôÌø¹ýÄ¿±e×Öu¼¯²»´aeÔÚµÄ×Öu£¬²eÊÖ²a¢ÏÖiconvµÄº¯ÊýÖ»ÓÐÈý¸o²ÎÊý£¬ºÃÏñ²»ÐУ¬È»ºo²eÍøÉÏÓÐÈË˵¿ÉÒÔ£¬µ«ÊǺÜÆae¹ÖÔoôʵÏÖ£¬×iºo¢ÏÖÓ¢ÎÄÃeÊoÓÐ˵¿ÉÒÔ¼Ó±eʶµ½Ä¿±e±aÂeºoÃae£º¡°TRANSLIT¡±£¬ºÜÓoÃÆÔoô¼ÓÄØ£¿ÔÀ´ÊÇÏȼӡ°//¡±£¬ÕaeÊÇÓoÃÆ£¬¾¹È»ÓÐÕaÑuµÄÉe¼Æ
ÔÐÍ£º $txtContent = iconv("utf-8",'GBK',$txtContent);
ÌØÊa²ÎÊý£ºiconv("UTF-8","GB2312//IGNORE",$data)
Á½¸o¿ÉÑ¡µÄ¸¨Öu²ÎÊý£ºTRANSLITºÍIGNORE £¬(ÆaÖÐIGNORE ¾ÍÊÇ˵Óoµ½ÎÞ*¨×ª»»µÄ¾ÍÌø¹ý)¡£
ÒÔÉÏËuÊo¾ÍÊDZ¾ÎĵÄÈ«²¿ÄÚÈÝÁË£¬Ï£Íu´o¼ÒÄܹ»Ï²»¶¡£