php が文字化けした mysql を Excel にエクスポートするための解決策: 最初にタイムゾーンとヘッダー情報を設定し、次に「ob_end_clean();」を通じてバッファをクリアし、次にテーブル情報を設定し、最後にコンテンツをクエリします。そしてデータベースデータをエクスポートします。
推奨: 「PHP ビデオ チュートリアル 」
PHP クエリ データベースを Excel にエクスポートし、文字化けの問題を解決する, ネイティブ コードにはプラグインは必要ありません
#最近情報システムを作成し、データベースの内容を Excel にエクスポートする必要がありました##コードを以下に投稿します。phpexcel は使用しません。プラグインが必要です
システム要件: php5.6
<?php date_default_timezone_set('PRC');//设置时区 /*设置head头信息*/ ob_end_clean();//清除缓冲区,避免乱码 Header("Content-Type:application/vnd.ms-excel;charset=UTF-8"); Header("Accept-Ranges:bytes"); Header("Content-Disposition:attachment;filename="."导出excel的名字".date('YmdHis').".xls"); Header("Pragma:no-cache"); Header("Expires:0"); $str = $str2 = null; /*设置表格信息*/ $str.= "序号"."\t"; $str.= "学号"."\t"; $str.= "姓名"."\t"; $str.= "性别"."\t"; $str.= "学院"."\t"; $str.= "年级"."\t"; $str.= "班级"."\t"; $str.= "手机号"."\t"; $str.= "报名时间"."\t\r\n"; $info = iconv("UTF-8","GBK",$str); echo $info; /*查询内容导出数据库数据*/ $con = new mysqli("localhost", "root", "password", "detabase"); if (!$con) { die(mysqli_error()) ; } //$sql = " select * from bmxx"; //$res = mysqli_query($con, $sql); mysqli_query($con,"SET NAMES utf8");//解决数据库中有汉字时显示在前台出现乱码问题 $result = mysqli_query($con,"SELECT * FROM `bmxx`"); while($row = mysqli_fetch_assoc($result)){ $list[] = $row; } mysqli_free_result($result); mysqli_close($con); $co = 1; foreach($list as $v){ $str2.= trim($co++)."\t"; $str2.= trim(iconv("UTF-8","GBK","\t".$v['num']."\t"))."\t"; $str2.= trim(iconv("UTF-8","GBK",$v['name']))."\t"; $str2.= trim(iconv("UTF-8","GBK",$v['sex']))."\t"; $str2.= trim(iconv("UTF-8","GBK",$v['xueyuan']))."\t"; $str2.= trim(iconv("UTF-8","GBK",$v['grade']))."\t"; $str2.= trim(iconv("UTF-8","GBK",$v['class']))."\t"; $str2.= trim(iconv("UTF-8","GBK",$v['phone']))."\t"; $str2.= trim(iconv("UTF-8","GBK",$v['time']))."\t\r\n"; } echo $str2; ?>
このコード行は最初に追加されていないため、出力が文字化けしました。各データ生成の前にバッファをクリアするだけです。
ob_end_clean();//清除缓冲区,避免乱码
以上がphp で mysql を Excel にエクスポートすると文字化けしてしまう場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。