ホームページ  >  記事  >  バックエンド開発  >  PHPからCSVファイルをエクスポートする際の文字化けに関する問題の解決策

PHPからCSVファイルをエクスポートする際の文字化けに関する問題の解決策

WBOY
WBOYオリジナル
2016-06-13 13:02:54842ブラウズ

PHPでCSVファイルをエクスポートすると文字化けする問題の解決策

PHP から CSV ファイルをエクスポートする際の文字化けの問題の解決策

この質問をする前に、まず CSV ファイルとは何なのかについて話しましょう。 Comma Separator Value (カンマ区切り値) もあります。 Mysql から CSV へのデータのエクスポートや SqlServer への CSV のインポートなど、データ変換によく使用される中間ファイルが存在します。 Linux で PHP スクリプトを使用して、条件に従って Mysql データベースからテーブル データを csv にエクスポートします。 CSV ファイルを開くと、中身の中国語が文字化けします (Windows の CSV ファイルは Microsoft Excel に関連付けられています)。 Notepad++ または Word を使用すると正常に開きますが、レイアウトが乱雑になります。理由: BOM が問題を抱えており、Microsoft も問題を抱えています。

BOM とは何ですか? Byte Order Mark(ビットオーダーマーク)もあります。

Unicode ファイルを認識するには、すべての Unicode ファイルを ZERO WIDTH NOBREAK SPACE 文字で始めることをお勧めします。これは、ファイルで使用されているエンコーディングとバイト順序 (ビッグ エンディアンまたはリトル エンディアン) を識別するための「署名」または「バイト オーダー マーク (BOM)」として機能します。具体的な対応関係を次の表に示します。

?

Bytes Encoding Form
00 00 FE FF UTF-32, big-endian
FF FE 00 00 UTF-32, little-endian
FE FF UTF-16, big-endian
FF FE UTF-16, little-endian
EF BB BF UTF-8

?
BOM は既存の ASCII ファイル構文規則を破るため、Unix 系システムでは使用されません。

実装コード if

<?php
$str = "哈,哈,哈,哈";
$fp = fopen("a.csv","a");
//在写入数据之前先把bom头写到文件里
fwrite($fp,"\xEF\xBB\xBF");
//再写入数据 php程序员站
fwrite($fp,$str);
phperz.com
fclose($fp);
phperz.com
?>

注: CSV ファイルを書き込むときは、PHP ソース コードが UTF-8 であり、BOM がなく、何も出力されないことを確認してください。


BOM は実際には非常に厄介です。Web ページ (*.html) に BOM がある場合、IE6.x で開くと魔法のような空白行が表示されますが、Firefox では

がありません。

?

出典: http://www.i-felix.cn/blog/phpdao-chu-csvwen-jian-luan-ma-wen-ti-jie-jue-fang-fa-gai-si-de-wei -ルアン

?

?

1階 シャオシェンゲ 2012-09-03
以前はエンコードを変換する必要があることしか知りませんでした。簡単な方法があることが分かりました。

2階 はしごの夢 2012-09-05
はい、トランスコーディングは時には非現実的です。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。