2012-01-04 15 views
3

http://code.google.com/p/parsecsv-for-php/のCSVパーサーを使用して、レポートをPHPでCSVにエクスポートしました。私は€XXXX.XXにSales Totalの値を、ブラウザとExcel(エクスポート後)にユーロ記号で表示しました。€などのHtmlエンティティは、CSV変換でシンボルに変換されません。

しかし、ユーロ記号ではなく、CSVでは、コード€のみを表示しています。

€をCSVに対応するシンボルにエクスポートするにはどうすればよいですか。

ありがとうございます。 utf-8ハンドリングと

使用fputcsv(): はコーディング:)

答えて

1

私によるとハッピーExcelがcharacters.Youは一度下記試すことができますUnicodeを使用したCSV-ファイルを表示するいくつかの問題があります。

以下のようなもの:

$handler = fopen("php://output", "w"); 

header("Content-Type: text/csv; charset=UTF-8"); 
fputcsv($handler, $fields, ';', '"'); 

fclose($handler); 

php://outputあなたは、印刷と同じように、出力バッファメカニズム(に書き込むことができます書き込み専用のストリームである)および(エコー)。

1

私は、CSVファイルであまり知りませんが、あなたはこれら二つのことを試してみてください:

  1. は、直接、ユーロ記号を入れてください。

    または

  2. CSVファイルのエンコーディングを探します。

2

あなたは、すべてのHTMLエンティティを見つけ、彼らの実際のシンボルに置き換えてなる、ファイルに書き込む前に、文字列のhtml_entity_decode()を使用する必要があります。 htmlentities()html_entity_decode()はそれらのすべてで動作しながら、

html_special_chars()html_special_chars_decode()は、><のように、いくつかのHTMLエンティティに取り組んでいます。

代わりに、あなただけの文字列がに置き換える€ため(str_replace()またはpreg_replace()または何を)置き換える行うことができます。

次に試してみてください。

str_replace('€','€',$valuebeingexported);

+1

申し訳フェニックス、がhtml_entity_decode(みた)は奇妙だA.C.Balaji @ –

+0

が機能していません。そうすべき。私が最後に加えたことを試してみてください。 – Phoenix

+1

はまだ動作しませんでした。私がそれを働かせた唯一の方法は私の答えです – Dslayer

0

かわり€の、€のため€を使用しようとしたことがありますか?

1

これはきれいに私のためにそれを固定唯一

html_entity_decode($text, ENT_QUOTES, 'utf-8') 
0

この

//add BOM to fix UTF-8 in Excel 
fputs($fp, $bom =(chr(0xEF) . chr(0xBB) . chr(0xBF))); 
fputcsv($handler, $fields, ';', '"'); 
関連する問題