すみません。下記のソースで、
すみません。下記のソースで、
foreach ($value as $key2 => $value2) {
の部分ですが、
こちらは、DBから拾ってきた値において、
"を""にしていますが、
DBから拾ってくると、通常"になっているのでしょうか。
また、"を""にする理由はなんでしょうか。
そのあとの$csv_outputで""で囲むようにしているので、
不要な処理ではないのかなと思いました。
//アンケートのデータを削除されていないデータをすべて取得(取得順はデータ登録日順
$sql = "SELECT * FROM anq_t WHERE del_flag != '1' ORDER BY create_datetime DESC";
}
$anq_list = $db->getAll($sql,DB_FETCHMODE_ASSOC);
//CSVの最初の行を項目名をセットする
$csv_output = "\"回答日時\",\"名前\",\"性別\",\"年代\",\"好きな動物\",\"コメント\"\n";
//アンケートデータのCSVを作成する
foreach ((array)$anq_list as $key => $value) {
// 1行づつ受け取ったデータ($value)をそれぞれのフィールドごとに展開して文字列内のダブルクォートを二重にする
foreach ($value as $key2 => $value2) {
$value[$key2] = str_replace('"', '""', $value2);
}
$csv_output .= "\"" . $value["create_datetime"] . "\",";
$csv_output .= "\"" . $value["name"] . "\",";
$csv_output .= "\"" . $sex_value[$value["sex"]] . "\",";
$csv_output .= "\"" . $age_value[$value["age"]] . "\",";
$csv_output .= "\"";
$tmp_animal = explode(",",$value["animal"]);
foreach ((array)$tmp_animal as $tmpkey => $animalno) {
$csv_output .= $animal_value[$animalno] . " ";
}
$csv_output .= "\",";
$csv_output .= "\"" . $value["comment"] . "\",";
$csv_output .= "\n";
}
//CSVファイルとして出力する
Header("Content-disposition: attachment; filename=anq_data.csv");
Header("Content-type: application/octet-stream; name=anq_data.csv");
print mb_convert_encoding($csv_output, "SJIS","UTF-8");
exit;
お礼
回答ありがとうございます。 gccでの日本語表示ではなくて、各コマンド群が出力する日本語メッセージさんたちが文字化け状態なので、それをどうにかしたいなぁとおもっているんです。
補足
あとお礼で言い忘れましたが .bash_profileはホームディレクトリの.bashrcをロードするのみで、環境変数LANGについては.bashrcで書いてあります。.bashrcに書いたプロンプトの設定などが反映されていることから、.bashrcの読み込みは正常だと思っています。 また現在echo $LANGで確かめましたところja_JP.SJISとなっておりました。 不思議なのは、bashの”コマンドが見つかりません”っていうのは化けないんですよね・・・