Home > Article > Backend Development > Solution to garbled Chinese characters in PHP downloads
Solution to php downloading Chinese garbled characters: first open the relevant code file; then use the "iconv()" function to solve the garbled characters. The specific syntax is "$file_name = iconv("utf-8","gb2312", $file_name);".
php download to solve the problem of Chinese garbled characters
Use iconv() function to solve the problem of garbled characters
$file_name = iconv("utf-8","gb2312",$file_name);
The specific download code is as follows:
public function downloadAction(){ header("Content-type:text/html;charset=utf-8"); // 文件名 $file_name="中文.txt"; //用以解决中文不能显示出来的问题 $file_name = iconv("utf-8","gb2312",$file_name); // 文件路径 // $file_sub_path=$_SERVER['DOCUMENT_ROOT']; $file_path=$file_sub_path.'/'.$file_name; //首先要判断给定的文件存在与否 if( !file_exists($file_path) || $file_path=='/' ){ $arr = array( 'code' => '-103', 'message' => '操作失败', 'data' => '没有该文件文件' ); echo json_encode( $arr ); die(); } $fp=fopen($file_path,"r"); $file_size=filesize($file_path); //下载文件需要用到的头 Header("Content-type: application/octet-stream"); Header("Accept-Ranges: bytes"); Header("Accept-Length:".$file_size); Header("Content-Disposition: attachment; filename=".$file_name); $buffer=1024; $file_count=0; //向浏览器返回数据 while(!feof($fp) && $file_count<$file_size){ $file_con=fread($fp,$buffer); $file_count+=$buffer; echo $file_con; } fclose($fp); die(); }
For more related knowledge, please visit PHP Chinese website!
The above is the detailed content of Solution to garbled Chinese characters in PHP downloads. For more information, please follow other related articles on the PHP Chinese website!