1

PHPでCSVファイルを生成し、ハードディスクに保存しています(ダウンロードはしたくありません)。データベースの文字セットはutf8_general_ciあり、そこには度記号 ( °) のような文字があり、PHPmyadmin で完全に表示されます。これらの文字は CSV ファイルに保存する必要があります。私が行うことはすべて UTF-8 ですが、ファイルはエンコーディングで保存されますISO-8859-1utf8_encode関数の使用を開始すると、Excel またはその他のテキスト エディターÂに変換すると、他の文字が表示されます ( ) 。UTF-8何がうまくいかないのかわからず、追跡に何時間も費やしましたが、成功しませんでした。

SET NAMES utf8であることを確認しようとしましたがUTF-8、それはより奇妙な文字を引き起こし、UTF-8エンコーディングがありません。MySQLi を使用set_charsetしても同じことができます。ヘッダーをContent-type:text/html;charset=UTF-8CSV として使用すると、デフォルトのエンコーディングとして utf-8 が使用されず、これらの組み合わせも使用されません。

いくつかのコード:

header("Content-type:text/html;charset=UTF-8");
$rMysqli = new mysqli("localhost", "user", "pass", "database");
$rCSV = fopen("test_".time().".csv", 'w');

$aCSVdata = array($var1, $var2, $var3);
fputcsv($rCSV, $aCSVdata, ",", "\"");

fclose($rCSV);

それはほとんどすべてが起こっていることです。°やなどの特殊文字のみを含む通常の CSV データØです。

4

1 に答える 1

7

...短いコメントの長い話...

エンコーディングに関しては、 MicrosoftOfficeは最悪です。それは悪名高いことにそれを吸います。

(つまり、Excel以外はすべて問題ありませんでした。)

于 2012-12-17T10:57:00.893 に答える