《PHP實(shí)戰(zhàn):PHP附件下載中文名稱亂碼的解決方法》要點(diǎn):
本文介紹了PHP實(shí)戰(zhàn):PHP附件下載中文名稱亂碼的解決方法,希望對您有用。如果有疑問,可以聯(lián)系我們。
本文實(shí)例講述了PHP附件下載中文名稱亂碼的解決辦法.分享給大家供大家參考,具體如下:PHP實(shí)例
PHP中,如果要下載的文件名稱為中文,則會(huì)出現(xiàn)文件標(biāo)題亂碼.PHP實(shí)例
此時(shí)就需要對標(biāo)題進(jìn)行編碼,也就是說先進(jìn)性urlencode,然后再放入header,然后問題就辦理了.PHP實(shí)例
$filename = urlencode("下載文檔"); header ( "Content-disposition: attachment; filename=$filename.xls" );
網(wǎng)上說,在RFC2231的定義里面, 多語言編碼的Content-Disposition應(yīng)該這么定義:
PHP實(shí)例
filename后面的等號之前要加 *
filename的值用單引號分成三段,分別是字符集(utf8)、語言(空)和urlencode過的文件名. PHP實(shí)例
所以這時(shí)應(yīng)該對文件名進(jìn)行url編碼轉(zhuǎn)換 ,使用php的urlencode很輕松就搞定了PHP實(shí)例
$ua = _SERVER["HTTP_USER_AGENT"]; $filename = "中文 文件名.txt"; $encoded_filename = urlencode($filename); $encoded_filename = str_replace("+", "%20", $encoded_filename); header('Content-Type: application/octet-stream'); if (preg_match("/MSIE/", $ua)) { header('Content-Disposition: attachment; filename="' . $encoded_filename . '"'); } else if (preg_match("/Firefox/", $ua)) { header('Content-Disposition: attachment; filename*="utf8\'\'' . $filename . '"'); } else { header('Content-Disposition: attachment; filename="' . $filename . '"'); }
希望本文所述對大家PHP程序設(shè)計(jì)有所贊助.PHP實(shí)例
《PHP實(shí)戰(zhàn):PHP附件下載中文名稱亂碼的解決方法》是否對您有啟發(fā),歡迎查看更多與《PHP實(shí)戰(zhàn):PHP附件下載中文名稱亂碼的解決方法》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/8231.html