1

私はphpでcsvファイルを作成しています。csv ファイルにデータを書き込むには、php 関数「fputcsv」を使用します。

これが問題です。作成したファイルを Excel で正常に開くことができます。しかし、ファイルをショップシステム (この場合は「ショップウェア」) にインポートできません。「データを読み取れませんでした」などのメッセージが表示されます。

そして今、手がかりが来ます:

作成したファイルを開いて「名前を付けて保存」を選択し、種類を「CSV(カンマ区切り)」にすると、このファイルをショップウェアにインポートできます。データをエンコードするために使用したphp関数「mb_convert_encoding」について何かを読みましたが、問題を解決できませんでした。

あなたが私を助けることができれば、私はとてもうれしいです.

ありがとう。

4

3 に答える 3

1

ご意見ありがとうございます。fputcsv を fwrite に置き換えることで、この問題を解決しました。次に、行末に "\r\n" (wmil に感謝) を追加するだけで、生成されたファイルをショップウェアで読み取ることができます。

明らかに、fputcsv 関数は EOL 文字として \r\n ではなく \n を使用します。

于 2011-10-27T11:55:52.157 に答える
0

fputcsv を使用してエンコードを設定することはできないと思います。ただし、fputcsv はロケール設定を参照しますが、これは setlocale で変更できます。

おそらく、ファイルをユーザーのブラウザに直接送信し、ヘッダー関数で contenttype と charset を変更することを使用できます。

于 2011-10-26T17:31:47.207 に答える
0

これは、システムについて詳しく知らなければ答えられません。ほとんどの場合、文字エンコーディングとは関係ありません。おそらく、列の数が間違っているか、列のヘッダーが正しくないことが問題です。

文字エンコーディングの問題である場合、最善の策は次のとおりです。

$new_str = mb_convert_encoding($str, 'Windows-1252', 'auto');

また、\n だけでなく、\r\n で改行を終了します。

それでもうまくいかない場合は、ソフトウェアのドキュメントを確認する必要があります。

于 2011-10-26T17:38:34.747 に答える