• ベストアンサー

cgiのログをcsvとして出力、編集がうまくできません

フリーのcgiスクリプトを利用して入力したものが表の ような形式で表示できるWEBページを作りました。 データをいくつか入力した後、ログファイルの「<>」を 「,」に置換し、csvファイルとしてエクセルで読み込み、 エクセルでデータを沢山入力してからまた逆に置換し、 cgiのログに戻そうとしたところ、エクセルで開いた 時に文字化けしています。 ログデータそのものは、メモ帳で開くと文字化けしてい ますが、Tera Padで開くとちゃんと見えます。 なんとかしてエクセルでうまく表示させ、編集すること はできないでしょうか。 よろしくお願いいたします。

noname#183584
noname#183584
  • CGI
  • 回答数2
  • ありがとう数6

質問者が選んだベストアンサー

  • ベストアンサー
  • Te-Sho
  • ベストアンサー率52% (247/472)
回答No.2

ログファイルの文字コードがEUCになっているんじゃないでしょうか? TeraPadで一度、Shift-JISに変換保存すればExcelで開けると思います。あとログを戻すときは反対にEUCに変換保存したファイルを戻せばいいです。 もう一つの手としてはCGI自体を改造する方法です。 CGIがperlだった場合、標準出力をログに出力する部分でjcode.pl等のコード変換を掛けて書き込み時にShift-JISにしてしまうと言う物です。

noname#183584
質問者

お礼

CGIの改造には興味がありましたが、スクリプトを見ると、検索のためにEUCにわざわざ変換しているようでしたので、やはりEUCに戻すことにしました。 ありがとうございました。

その他の回答 (1)

回答No.1

おそらくそのcsvファイルは文字コードがShift-JIS(SJIS)以外になっているのではないでしょうか。 Tera Padで読めるように開いた状態で、「名前をつけて保存」ダイアログを出し、「文字コード」という項目が「EUC」などになっていたらそこを「SJIS」(Shift-JIS、シフトJISなど表現は違うかもしれません)に変えてあげてから別名保存してください。 そのように文字コードを変換すればExcelで化けないはずです。

noname#183584
質問者

お礼

できました。どうもありがとうございました。 m(_ _)m

関連するQ&A

  • cgi→csvが文字化け

    (1)cgiで集計 (2)csvへのはきだし (3)検索用cgiで(2)のcsvを検索というプログラミングを作成しております。 ------- (1)のcgiをテキスト形式のlogでの出力は文字化け無し これを、csv形式で保存、出力するとどうしても文字化けしてしまいます。 使用しているcgiなどはすべて"sjis"設定にしているのですが、うまくいきません。 何かいい方法はありますでしょうか?

    • 締切済み
    • CGI
  • VBで出力したCSVファイルの文字化けについて。

    VBで複数のCSVファイルから必要なデータのみを 新たなCSVファイルに出力するアプリケーションを作成しています。 処理自体は出力ファイルの作成まできちんとできるのですが、 エクセルで開くと文字化けが起きてしまいます。 文字化けが起きるのは漢字と片仮名(全角、半角両方)です。 ちなみにNotepadで開くと文字化けは起きていませんでした。 また、エクセルのほかにwordpadで開いても文字化けが起きていました。 入力用のCSVファイルの文字コードは分かっていません。 ファイルの読み込みはGetEncoding("Shift_JIS")で読み込んでいます。 文字化けに関する質問は他にも多数あり重複しているかもしれませんが 宜しくお願いします。

  • パフォーマンスモニタ ログファイルをCSVに変換出来ません。

    本番環境より パフォーマンスモニタのログファイル「xxx_log_000001.blg」を採取し、 作業用PCにて、以下のコマンドでCSVに変換を試みました。 relog xxx_log_000001.blg -o test1.csv -f CSV コマンドプロンプトには以下が表示されます。 *********************************************** 入力 ---------------- ファイル: xxx_log_000001.blg (バイナリ) 開始: 2008/11/18 21:37:03 終了: 2008/11/18 21:39:03 サンプル: 9 出力 ---------------- ファイル: test1.csv 開始: 2008/11/18 21:37:03 終了: 2008/11/18 21:39:03 サンプル: 0 コマンドは、正しく完了しました。 *********************************************** 出力結果を見ると、データが1件も入っていません。 ログデータを取得する方法のご教授をお願いします。

  • ExcelでCSVを日付を読み込むと化ける

    こんにちは。CSVファイルをExcelに読み込むと日付のところが文字化けをしてしまいます。 A1に2012/04/05 というデータを読み込むと、1905/7/4 とA1では表示されてしまいます。これはなぜこのような現象が起こるのでしょうか? セルの書式を「日付」にしても解消されません。

  • CSV出力について

    csvファイルについて質問です。 新しく購入したパソコンでCSVファイルを作成しようとしたら メモ形式でしか表示されません>< 過去に使用していたパソコンでは拡張子をCSVにするだけで カンマ区切りのデータはダブルクリックして開いたら自動的にCSVファイルとして表示されていました。 現状は右クリックでプログラムから開くでエクセルを選ばないといけません。 自動で認識してくれるようにするにはどこで設定したらいいですか?

  • SSISでcsvファイルを読み込み、スクリプトで文字変換を行い、csvファイルを出力したいです

    SSIS初心者です。 SSISでcsvファイルを読み込み、スクリプト コンポーネントでC#やVB.netを使用し、小文字を大文字に変換したり、文字置換等の文字変換を行い、csvファイルを出力したいのです。 ネットで調べて見たのですが、SSISの情報が少なくどのようにソースを書いたらよいのかわからず大変困っています。 ご教示頂けましたら、助かります。 宜しくお願い致します。

  • csvファイル出力時に文字化けしてしまう。

    csvファイル出力時に文字化けしてしまう。 csvファイルを作成して、保存してExcelで開くと文字化けしてしまいます。 保存するときに「右クリック→ファイルの保存」ではなく、「左クリック」するとデータがブラウザ上(FireFoxで確認)で観れるのですが、その時は文字化けしていません。 また、保存したファイルをTeraPadで開くと文字化けしませんでした。 ファイルの保存方法は、 $csvFile = 'entry.csv'; $csvData = "適当なデータ・・・・・・・・・・・・・・"; $fp = fopen($csvFile, 'ab'); flock($fp, LOCK_EX); ftruncate($fp,0); fwrite($fp,$csvData); fclose($fp); htmlのヘッダーには、 <meta http-equiv="Content-type" content="text/html; charset=utf-8"> を入れております。 以上よろしくお願いします。

    • ベストアンサー
    • PHP
  • ExcelでUTF8のcsvファイルを開く方法

    UTF8でエンコーディングされたcsvファイルを、 Excelで開いて表示すると文字化けしてしまいます。 文字化けせずに表示する方法をお教えてください。

  • エクセルで編集したCSVファイルを読み込むときに

    よろしくお願い致します。 エクセルで編集したCSVファイルを読み込み、HTMLとして表示するCGIがあります。 エクセルでCSVファイルを編集すると最後の項目の後にカンマ(,)が付かないのですが、 使用しているCGIでは、カンマがないと行が改行されたとみなされません。 行の最後にカンマがなくても行を改行させるには、どのようなコードを追加すればよいのでしょうか? CGIのCSVファイルの読み込みする部分のコードは以下のようになっています。 # ログファイル読み込み my $LOG_FILE = 'log.csv'; my $io = IO::File->new($LOG_FILE, 'r') or die $!; flock($io, 1); while(my $line = $io->getline) { push @ids, (split(/,/, $line))[0]; push @new_checks, (split(/,/, $line))[1]; push @dates, (split(/,/, $line))[2]; push @contents, (split(/,/, $line))[3]; push @contents2, (split(/,/, $line))[4]; push @contents3, (split(/,/, $line))[5]; push @contents4, (split(/,/, $line))[6]; push @contents5, (split(/,/, $line))[7]; push @contents6, (split(/,/, $line))[8]; } 分かりにくい説明で申し訳ありません。 補足説明も致しますので、どうぞよろしくお願い致します。

    • ベストアンサー
    • CGI
  • ExcelからCSV出力して読込むと削除変換される

      Excelのブック1のシートに入力されたデータを 一度、CSVファイルに出力して このCSVファイルを別のツール(perlなど)で変換して この変換されたCSVファイルを再び 別のExcelのブック2のシートに読み込ませたいのですが Excelのブック1から出力したCSVファイルを 別のツールで変換しなくてもそのまま Excelのブック2のシートに読み込ませた時点で 文字の一部が消えたり数式が値になったりしてしまっています。 具体的には、 セルの先頭の ' (シングルクォーテーション) が消えてしまったり、 1つ足りなくなったりしています。また、 先頭の =1+1 などは、(表示上) 2になったりしてしまっています。 なお、セルの書式設定が標準だと、先頭の @ の後に続けて入力すると 正しく入力できませんが、セルの書式設定を文字列にすると、 この @ の問題は起きなくなりました。でも、セルの書式設定を文字列にしても ' (シングルクォーテーション) や数式が計算結果になる問題は 解決していません。 (問1) 削除されたり変換されてしまうのは     ・先頭の ' (シングルクォーテーション)     ・先頭の =     ・先頭の @    の3つのケースだけでしょうか。    このほかにもありましたら教えてください。 (問2) 先頭の =1+1 の場合ですが    セルの書式設定が標準の状態で =1+1 と入力すると    数式バーには =1+1 と表示されていて    セルの書式設定が標準だと2と表示されていてその後    セルの書式設定を文字列にしても2と表示されています。    逆に、    セルの書式設定が文字列の状態で =1+1 と入力すると    数式バーには =1+1 と表示されていて    セルの書式設定が文字列だと =1+1 と表示されていてその後    セルの書式設定を標準にしても =1+1 と表示されています。    いずれも入力したデータは同じなのに    入力時点での表示形式で表示内容が固定されてしまっていて    その後、表示形式を変更しても表示内容が反映されていない    ように感じるのですが何が起きているのでしょうか。 (問3) 前述の理由により、CSVファイルをセルの書式設定が文字列    の状態で読み込ませることはできるのでしょうか。    (後でセルの書式設定を文字列に変更しても =1+1 と表示されないので) (問4) Excelのブック1のシートのセルには     ユーザーが好き勝手な文字や数値や記号を入力します。     何を入力されても変化してしまわないようにすることはできるでしょうか。      ( 頭に ' を付けることをユーザーに強要するとか、       事前にセルの頭に ' を入力しておくなどはなしです) (問5) もし、できない場合、Excelのブック1のシートの各セルの先頭に     ' (シングルクォーテーション) や = から始まる数式を    入力することができないように制限をかけることはできるのでしょうか。 よろしくお願いします。(Windows7,Excel2010)

専門家に質問してみよう