ホームページ > バックエンド開発 > PHPチュートリアル > PHP_PHP Tutorial でエクスポートした中国語文字化けの解決策まとめ

PHP_PHP Tutorial でエクスポートした中国語文字化けの解決策まとめ

WBOY
リリース: 2016-07-13 10:56:19
オリジナル
1518 人が閲覧しました

私のページは UTF-8 でエンコードされています。エクスポートされた Excel が文字化けしないようにするにはどうすればよいですか?また、オペレーティング システムが異なればシステム エンコーディングも異なるため、ダウンロードするには異なるエンコーディング形式のファイルを提供する必要があるのでしょうか?

1. ファイル名を定義します

2. Excelデータを入力します

これら 2 つのプロセス中に PHP から Excel をエクスポートするときに文字化けの問題が発生する可能性があります。その解決策について以下で説明します。


PHPでエクスポートしたExcelのデータが文字化けする問題を解決:

PHP で Excel が文字化けしてエクスポートされる理由: Web ページのエンコーディングが Excel のエンコーディングと一致していません。

解決策: エンコードに一貫性がないため、一貫性を持たせても問題ありません。 Excel の文字セットを定義します:

コードは次のとおりですコードをコピーheader(“Content-Type: application/vnd.ms-excel; charset=UTF-8”)
、charset=UTF-8 が表示されます。Web ページのエンコーディングと一致させて、Excel のデータ化けの問題を解決します。これは比較的簡単です。

PHPエクスポートExcelクラスを添付します

コードは次のとおりですコードをコピー
クラス情報








/*
※2012年2月26日作成
*
* この生成されたファイルのテンプレートを変更するには、
にアクセスしてください * ウィンドウ - 設定 - PHPeclipse - PHP - コード テンプレート
*/
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=php100.xls");
?>


まとめ

エクスポートする前にGBKに変換する必要があります

コードは次のとおりですコードをコピー

その他の方法

最後に、HTMLExcelを使用したphpMyAdminの方法を採用しました。フォーマットは次のとおりです。

iconv("UTF-8", "GBK", $value);

コードは次のとおりですコードをコピー
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="http://www.w3.org/TR/REC-html40">


<頭>












1234ロビンは唾を吐きます
5678javaeye ウェブサイト
これで、HTML で Content-type を設定するだけで、直接エコーできるようになります (ここでは UTF-8 を使用します)。もちろん、ヘッダーを追加する必要があります。

PHPコード


コードは次のとおりですheader("コンテンツタイプ:application/vnd.ms-excel"); header("Content-Disposition:attachment;filename=export_data.xls");
コードをコピー

中国語の名前をエクスポートすると文字化けが発生する可能性があります
PHP によって Excel にエクスポートされたファイル名が文字化けする問題の解決策:

コード文字化けの原因: お客様が使用している Windows システム プラットフォームの中国語版、および Windows プラットフォームのファイル名エンコーディングは gb2312 (gbk) です。既存の傾向に従うため、当社の Web ページのエンコーディングは通常 utf-8 を使用します。 (国際化) エンコーディング:

コードは次のとおりです

コードをコピー
header("Content-Disposition: inline; filename="" . $filename . ".xls"")
の場合、文字化けが発生します。Web ページのエンコードが gb2312 の場合は、エンコードの問題を考慮する必要はありません。
解決策:

$filename をトランスコードするには、次を実行します:

コードは次のとおりです

コードをコピー

。環境が iconv 関数をサポートしていない場合は、$filename のエンコーディングを gbk に変換できる限り、別の関数を使用できます。
しかし、この問題は再び発生し、Linux ユーザーはファイル名が文字化けすることになります (Linux プラットフォームのファイル名は gbk エンコードされていないため)。

この問題を考慮して、私は 2 つの方法を採用しました: 1 つ目: Windows システム ユーザーが大多数を占めているため、一部の顧客を諦めます。 2 番目: Gmail と同様に、2 つのダウンロード アドレスが提供されます。 1 つのファイル名は gbk エンコードされ、もう 1 つのファイル名は utf-8 エンコードされます。

iconv('utf-8'', “gb2312”, $filename)

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632176.html技術記事ページが UTF-8 でエンコードされているのですが、エクスポートした Excel が文字化けしないようにするにはどうすればよいですか?そして、オペレーティング システムが異なればシステム コードも異なるため、異なるものを提供する必要があります...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート