phpexcelのコードが文字化けする
前にやったプロジェクトがutf8でエンコードされていてエクセルへのエクスポートは正常でした
今のプロジェクトもutf8なので前のコードをコピーしました
出力時に文字化けがありました
原因がわかりません
すべてのファイルのエンコードは
ディスカッションへの返信 (解決策)
はすべて gbk に変更されています。 Excel のデフォルトのエンコードは gbk ですよね。
それ以外の場合は、gbk に変換してください
以前に utf-8 に問題はありましたか?
http://blog.csdn.net/ohmygirl/article/details/6907946
これは私が以前書いた phpExcel の文字化けコードをまとめたものです。ぜひご覧ください。
BOM ヘッダーに関連しているかどうかを確認する必要があります
モデレータの上司は常に BOM について言及し、オンラインでコードをコピーしました
if (isset($_GET['dir'])){ //设置文件目录 $basedir=$_GET['dir']; }else{ $basedir = '.'; } $auto = 1; checkdir($basedir); function checkdir($basedir){ if ($dh = opendir($basedir)) { while (($file = readdir($dh)) !== false) { if ($file != '.' && $file != '..'){ if (!is_dir($basedir."/".$file)) { echo "filename: $basedir/$file ".checkBOM("$basedir/$file")." <br>"; }else{ $dirname = $basedir."/".$file; checkdir($dirname); } } } closedir($dh); } } function checkBOM ($filename) { global $auto; $contents = file_get_contents($filename); $charset[1] = substr($contents, 0, 1); $charset[2] = substr($contents, 1, 1); $charset[3] = substr($contents, 2, 1); if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) { if ($auto == 1) { $rest = substr($contents, 3); rewrite ($filename, $rest); return ("<font color=red>BOM found, automatically removed.</font>"); } else { return ("<font color=red>BOM found.</font>"); } } else return ("BOM Not Found."); } function rewrite ($filename, $data) { $filenum = fopen($filename, "w"); flock($filenum, LOCK_EX); fwrite($filenum, $data); fclose($filenum); }
すべて英語と数字だと文字化けしますか?
コードを投稿して見てください。
公式のサンプルコードを使用しています
間違いはありません
// Create new PHPExcel object$objPHPExcel = new PHPExcel();// Set properties$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") ->setLastModifiedBy("Maarten Balliauw") ->setTitle("Office 2007 XLSX Test Document") ->setSubject("Office 2007 XLSX Test Document") ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") ->setKeywords("office 2007 openxml php") ->setCategory("Test result file");// Add some data$objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', 'Hello') ->setCellValue('B2', 'world!') ->setCellValue('C1', 'Hello') ->setCellValue('D2', 'world!');// Miscellaneous glyphs, UTF-8$objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A4', 'here') ->setCellValue('A5', 'that');// Rename sheet$objPHPExcel->getActiveSheet()->setTitle('Simple');// Set active sheet index to the first sheet, so Excel opens this as the first sheet$objPHPExcel->setActiveSheetIndex(0);// Redirect output to a client’s web browser (Excel5)header('Content-Type: application/vnd.ms-excel');header('Content-Disposition: attachment;filename="01simple.xls"');header('Cache-Control: max-age=0');$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');$objWriter->save('php://output');
ちなみに、私は thinkphp フレームワークを使用していますが、これとは何の関係もないはずです
まずは Buzhu の返信を読みましたか?ファイルには bom ヘッダーがあります。
header('Content-Type: application/vnd.ms-excel');
この文にエンコードを追加します
header('Content-Type: application/vnd.ms-excel;charset=utf-8') ;
まず、ファイルに BOM ヘッダーがあるかどうかを確認してください。
header('Content-Type: application/vnd.ms-excel');
この文にエンコードを追加します
header('Content-Type: application/vnd.ms-excel;charset=utf-8') ;
前の文はありますが、次の文を追加しても機能しません
あなたのコードでテストしましたが、文字化けしたコードはありません。
ファイル形式を確認してください。 BOM 形式なしで utf-8 として保存します。
私のプロジェクトに何か問題がありますか?
私のプロジェクトに何か問題がありますか?
コードには問題がないので、次の 2 つの理由が考えられます:
1. ファイルに BOM ヘッダーがあるため、Excel が出力される前に他の内容が出力され、混乱が生じます。
2. phpExcelのバージョンに問題があります。最新のものは1.7.6ですよね?
または、コードにこれら以外のコードが含まれており、それらのコードが出力されたり、エラーが発生したりする可能性があります。 。
UTF8 を GB2312 にエンコードしてみてください
コードに問題はないので、次の 2 つの理由が考えられます:
1. ファイルに BOM ヘッダーがあるため、Excel が出力される前に他のコンテンツが出力され、混乱が生じます。 。
2. phpExcelのバージョンに問題があります。最新のものは1.7.6ですよね?
または、コードにこれら以外のコードが含まれており、それらのコードが出力されたり、エラーが発生したりする可能性があります。 。
問題は、ファイルを引用する TP の rbac 内の書き換えられた文に問題があることが判明しました。これで、メソッド内で参照されるようになります。ありがとうございます
上記の方法でも文字化けが発生する場合は、出力バッファーに他の冗長なコンテンツがある可能性があります。php ファイルに Excel コンテンツを設定する前に、出力バッファーをクリーンアップしてください。 php ob_clean();? >
私も文字化けの問題に遭遇しましたが、空のExcelファイルを新規作成しても文字化けしていましたが、20階の方法でバッファをクリアすることでやっと解決しました! ! !
elcel がブラウザに出力される場合、以前に出力情報が存在する可能性もあります。そうでない場合は、形式が正しくない場合にエラーが発生します

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











多くの場合、キーワードと追跡パラメーターで散らかった長いURLは、訪問者を阻止できます。 URL短縮スクリプトはソリューションを提供し、ソーシャルメディアやその他のプラットフォームに最適な簡潔なリンクを作成します。 これらのスクリプトは、個々のWebサイトにとって価値があります

2012年のFacebookによる有名な買収に続いて、Instagramはサードパーティの使用のために2セットのAPIを採用しました。これらはInstagramグラフAPIとInstagram Basic Display APIです。

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

2025 PHP Landscape Surveyは、現在のPHP開発動向を調査しています。 開発者や企業に洞察を提供することを目的とした、フレームワークの使用、展開方法、および課題を調査します。 この調査では、現代のPHP Versioの成長が予想されています
