2011-07-21 13 views
0

ドイツ語の文字ä、ë、ïなどを除いて完全に作成されるCSVファイルを生成しようとしています。$データ変数に情報を取得して試しました使用する:ドイツ語の文字がphpを使用してCSVファイルに正しく表示されない

utf8_encode($data); 

が、私は奇妙なテキストを取得し、ここでは、ファイルのための私のヘッダーは、次のとおりです。

header("Content-type: application/octet-stream"); 
     header("Content-Disposition: attachment; filename=\"file1.csv\""); 

私は(ものiconvを使用してみましたが)。これまで運がなかった。

EDIT)(

はちょうど私の$データが既にUTF-8であることに気づいたので、私ははutf8_encodeを削除しました。まだ、私はそれを印刷しようとすると私は得る?

とにヘッダを変更:

header("Content-Type: text/plain; charset=utf-8"); 
+0

$データのエンコードについて知りたいですか? CSVを開くために使用するプログラムで使用する設定とエンコードは何ですか? – ikanobori

+0

私はそれを "ü"の代わりに "√o"のようなものを得るテキスト/プレーンに変更しようとしました。また、$ dataはプレーンテキストでなければなりませんが、私はDBを見たり、クエリしたりすることができないので、実際はわかりません。 OS Xからのプレビューでそのファイルを開くだけです。 – Tsundoku

+0

ok $ data is already utf-8まだ正しく表示されていない場合、どのように変更されますか? (再エンコーディングすることなく、$ dataを出力するだけです) – Tsundoku

答えて

2

用途:

header("Content-Type: text/plain; charset=utf-8"); 

そして、あなたの$dataがすでにUTF-8でないことを確認を!

2

これが原因でエラーが発生する可能性がある場合、csvはASCIIテキストファイルです。 text/csvまたは少なくともtext/plainを使用してください。まったくtext/* -mime-typeがより役に立ち、次にapplication/octet-streamがバイナリデータを定義するので、どのcsv-filesが明らかにそうでないのかが分かります。そして

ファイルは、UTF-8でエンコード既にある場合、再エンコードしていないことが

utf8_encode($data); // not useful, if $data is already utf-8 

次に、Content-Typeヘッダに

Content-Type: text/csv; charset=utf-8 

を文字セットを追加(まったく)

header("Content-Type: text/csv; charset=utf-8"); 

最後に、あなたはファイルを開き、utf-8を理解し、それをファイルに使用します。

関連する問題