• ベストアンサー

JSPでCSVのダウンロード処理

仕事でJavaのWebシステムを組むことになったのですが、そのシステムの中にCSVファイルのダウンロードという機能を入れることになりました。 サーバのOSはLinuxなのですが、クライアントのOSはWindowsです。 CSVファイルは、クライアントにダウンロードして使うものなので、Linuxの文字コード体系がEUCだろうが、とにかく使う側の文字コードにあわせてやれば問題ないと思っています。 Linuxサーバ上で動くJSPで、文字コードをEUC以外にして(Shift-JISで)ダウンロード処理はできますよね? 私は出来るものと思っていたのですが、今回の仕事のメンバーに聞かれて、ちょっと不安になってきました。

  • Java
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • deadlock
  • ベストアンサー率67% (59/87)
回答No.1

できますよ。 Javaの中で正常に処理できる形になっていればUnicodeにはなっているので、 Writerのエンコード指定をShift-JISにしておけば大丈夫です。 ほかに気をつけることは、改行コードです。 BufferedWriter#println()を使うと動作環境の改行コードが使われるので、 大抵の場合Windows環境のCRLFと異なっています。 改行コードは自分でつけた方が無難ですね。

その他の回答 (1)

  • yusukey
  • ベストアンサー率56% (17/30)
回答No.2

pageディレクティブの contentType で出力する文字コードを指定します。これはサーブレットを実行しているOSのプラットフォームによらず有効です。 具体的にはこんなかんじでしょうか。 <%@ page contentType="text/comma-separated-values; charset=Windows-31J" %>

参考URL:
http://edocs.beasys.co.jp/e-docs/wls/docs81/ja/relnotes_ja.html#1175172

関連するQ&A

  • Shift_JISコードでファイルを生成する方法

    いつもお世話になります。 環境サーバLinax、クライアントWindows2000、IE6でプログラミングしています。 JSPで、FileWriterを使用してCSVファイルを生成しているのですが、EUC-JPコードで記録されてしまい、リンクを張ってもクライアントにダウンロードしたCSVファイルは文字化けしてしまいます。 new String(strVal.getBytes("8859_1"),"Shift_JIS") と変換して書き出しても文字化けが起こるばかりでどうしようも無いです。 どうすればShift_JISでファイルを生成できるのか、またはShift_JISでファイルをダウンロードする方法を教えてもらえないでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • jspからcsvファイルのダウンロード

    あるjspから、サーバ上に保存してある hoge.csvデータをダウンロードするには どのような方法がありますでしょうか? 動作としては、jsp内のボタンをクリックして、 特定のディレクトリにあるhoge.csvをダウンロードします。 色々調べてみましたが、サーブレットを経由しダウンロードさせるのが、 一般的なようですが、具体的な方法がわかりません。 1.jsp内のボタンに対する指示と、 2.(サーブレット)を読む場合ダウンロードに必要な指示 3.(サーブレットを動作させるための指示等) をご教示いただければと存じます。 宜しくお願いいたします。

    • ベストアンサー
    • Java
  • LinuxでのJSPによるXML文書表示の際の文字コードについて

    Windowsで作ったXML操作のJSP(Servletと連携してます)を、Linuxのサーバー において、動作させたいと思っています。 Linuxは全く初めてなので、教えていただきたいのですが。。 XMLを再帰処理で読みこんで、ツリー構造で表示するところが、Windowsだと エラーなくできるのですが、Linuxだとjspの再帰処理の部分でソースコードのエラー (try{}catch{}の}が閉じられていないなどの)エラーになってしまいます。 Windowsのソースコードのままなので、"}"が閉じられていないというのは考えにくいので、 おそらく文字化けのエラーだと思っています。 jspのディレクティブのところは、"Shift_JIS"の部分を"EUC-JP"に変えて <%@ page pageEncoding="EUC-JP" contentType="text/html; charset=EUC-JP" ・・・・%> としたんですが、これだけでは足りないでしょうか? 再帰処理の表示のところでも、文字コードの設定が必要とか。。。 あと、画面で入力された文字はWindowsだとメソッド内で new String(string.getBytes("8859_1"), "Shift_JIS").trim(); としているんですが、"Shift_JIS"を"EUC_JP"に変えるとして、"8859_1"の部分は 変えなくて良いでしょうか?? 初歩的な質問ばかりですみません。。Linuxのことを詳しく書いてある本が会社になくて、 (Linuxの本はあっても、肝心の知りたいことが書いてなかったりするので) できればLinuxでjavaを扱うサイトやLinuxでXMLを扱うオススメのサイトを知っていたら、ぜひぜひ教えてほしいのですが☆ よろしくお願いします。

    • ベストアンサー
    • Java
  • DBからのCSVファイルダウンロード

    MySQLに溜めたデータをCSV形式でダウンロードしたいと思っていますが、ダウンロードしたファイルが文字化けして困っています。 PHP、DBともにEUCで作成しているのですが、プログラムの中に文字コードに関する記述が必要になるとは思うのですが、何を追加すればいいのか教えていただけますでしょうか?

    • ベストアンサー
    • PHP
  • EUCでCSVファイル作成できるソフト

    エクセルで作ったCSVファイルを文字コード変換(EUC)したいのですが、 何かいいソフトはありますでしょうか? 今やってる方法は、 CSVファイルをエクセルで修正して、保存 ↓ EmEditorで、CSVファイルを開き、文字コードをEUCに変換 ↓ サーバーへアップ ↓(編集の時) EmEditorで、CSVファイルを開き、文字コードをJISへ変換 ↓ エクセルでCSVファイルを開き、編集 ↓ 繰り返し これだと、いちいち大変なので、 文字コードを変換できて、CSV形式で保存できるソフトを 探しています。 ヨロシクお願いします。

  • 携帯WEBサイト開発時の文字コードの取り扱いについて

    現在J2EEを使用したPC+3キャリア対応携帯WEBサイトの構築に携わっています。 フレームワークはStrutsで、VIEWにはJSPを使用しています。 OSがLinuxということで、 サーバ+DBの文字コードはEUC-JPになることが決まっていますので PCサイトは文字コードをEUC-JPで作成すればよいと思っています。 ただ、携帯の場合、技術資料にShift_JISで作成するように記述されていました。 今回のケースの場合、携帯ページで文字コードに関する不具合を回避するには どのような対処を行えばよいでしょうか? 私としてはDB等含め全て文字コードはEUC-JPで作成しておいて 携帯用のJSPと、そのJSPが参照しているActionFormに値を設定する際はEUC->Shift_JIS、 取り出す際はShift_JIS->EUCとでエンコードすれば 問題ないのではと考えていはいるのですが合っているでしょうか。 。 お手数ですがよろしくお願いします。

    • ベストアンサー
    • Java
  • JSPの質問です。IEでCSV形式のファイルはダウンロード可能でしょうか?

    今、JSPをやっています。IEでCSV形式のファイルをダウンロードさせて表示させようとしているのですが、IEの 「コンテンツのタイプを経験的に判断し、サーバが指定したコンテンツタイプを無視して、コンテンツを普通に表示してしまう」 という機能のせいで困っています。 はたして、IEでCSV形式をJSPでダウンロードさせ、正しく表示させることはできるのでしょうか? ネスケに変えれば問題ないのかもしれませんが、JavaScriptをかなり使ってもいるので、ネスケだと今度はJavaScriptに依存している部分がおかしくなってしまうため、できればIEで続行したいのです。 お分かりになるかた、どうか解答をお願いいたします。

    • ベストアンサー
    • Java
  • CSVファイルのダウンロードができたりできなかったり・・

    ASPで、サーバー側で動的に作成したCSVファイルをクライアント側にダウンロードさせたいと思っていますが、 ダウンロードできるときとできないときがあり困っています。 「ファイルのダウンロード」ダイアログが表示され、うまくダウンロードできるときと、 「Internet Explorer では、[サイト名]-[aspファイル名]をダウンロードできません。このインターネットのサイトを開くことができませんでした。要求されたサイトがしようできないか、見つけることができません。後でやり直してください。」のメッセージが表示され、ダウンロードできない場合があります。 どちらもサーバー上にダウンロードすべきCSVファイルは作成されているので、ダウンロード部分に問題があると思うのですが、原因がわかりません。 ひとつ気づいたのが、csvファイルの容量が4.0MBを超えるとダウンロードできないような気がするのですが、関係ありますでしょうか? よろしくお願い致します。 --------出力のためのスクリプト----------------- Response.ContentType = "application/octet-stream" Response.AddHeader "Content-Disposition", "attachment; filename = " & CSVファイル名 Set fs = Server.CreateObject("Scripting.FileSystemObject") CSV_DATA = Server.MapPath(CSVファイル名) If fs.FileExists(CSV_DATA) Then Set ts = fs.OpenTextFile(CSV_DATA, 1) Do Until ts.AtEndOfStream Response.Write ts.ReadLine() & vbCrLf Loop ts.Close End If Response.End -----------------------------------------------

  • 日本語名ファイルのダウンロードについて

    Windowsマシン上でブラウザを立上げ、LINUXサーバーにアクセスしてファイルをダウンロードしたいのですが、ファイル名が全角文字だと、NOTFOUNDになってしまいます。 ダウンロードを行なうjavascriptは以下のとおりです。 function download(){ document.location.href = "http://190.XXX.XXX.XXX:7001/temp/download/日本語名ファイル.txt" } システムは、javaで開発しています。(Servlet,JSP,Beans) サーバーのアプリケーションは、Weblogic6.0です。 ブラウザは、IE5.5です。 サーバーがWindowsマシンの場合は、上の方法で正常にダウンロードできます。 サーバーがLINUXマシンの場合、全角文字の部分をEUCに変換しておくと、ダウンロードはできるのですが、ダウンロード後のファイル名が化けてしまうので、具合が悪いです。 日本語名ファイルをダウンロードするよい方法がありましたら、教えてください。

  • EUC⇔Shift_JISの文字コード変換について

    DB(OS:win2003、DBMS:MySQL Server5.0  文字コードはEUC)に対して CSVファイルをインポート、エクスポートしようとしています。 入出力ファイル(CSVファイル)の文字コードはShift_JISのため、 文字コード変換が必要となってきています。 CSVファイルのインポート/エクスポート、文字コード変換は、 php5.2.5で構築しています。 今、エクスポート(EUC→Shift_JIS)したCSVファイルを、 エクセルで確認すると極一部が文字化けしてしまいます。 そこで質問が4つあります。 1.文字化けは仕方ないことなのでしょうか? 2.文字化けする文字を特定することはできるのでしょうか? 3.エクスポート方法、変換方法によって文字化けする文字は変わってくるので しょうか? 4.みなさんはこのような文字化けの問題をどのように回避した経験お持ちですか?   (文字化けは已む無し、文字コードを意地でも統一した、    文字を特定して特殊文字に置き換えたなどなど) 基本的なことと思いますが、よろしくご教授願います。  (3.4.はもっと詳細がわからないと何とも言えないかもしれません。   ご回答頂く為には何を調べればいいのかからも教えてください。   よろしくお願いします。)

    • ベストアンサー
    • MySQL

専門家に質問してみよう