![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
こんにちは、kmakotoです。
現在日本語の文字化けに悩まされています。
いろいろなサイトで情報を見たのですが、
該当するようなものがありませんでした。
皆さんの力をお借りしたく投稿しました。
環境は、
サーバ:Windows2000(SJIS、DB:oracle 8.1.6(SJIS) で
weblogic7.0 を使って、Servlet,JSP,EJB の開発をしています。
文字化けの内容はDBで検索した結果を
response.getWriterで
printをつかってCSV形式にして、それをダウンロードしようとしているのですが、
エディタもしくはExcelで開いたとき日本語が化けて表示されてしまいます。
SJIS、MS932が…とかの説明がweb上にあるので、試行錯誤してみました。
しかし日本語は化けて表示されてしまいます。
試したことは
1.Javacのコンパイルオプションに -encodingにSJISまたはMS932を指定してコンパイル
2.1:response.setContentType("application/octet-stream");
2:response.setHeader("Content-Disposition", "attachment;filename=\"" +
new String(downLoadFileName.getBytes("MS932"), "8859_1") + "\"");
文字コードの指定の部分にMS932やSJISを設定
上記のことを試したのですがCSVファイルが文字化けしてしまいます。
2.1:の部分をresponse.setContentType("text/html");するとブラウザ上に表示されるのですが
このときだけはちゃんと日本語で表示してくれます。
No.3ベストアンサー
- 回答日時:
文字として流してるからダメなんだと思います。
HTTPでは日本語は
%A4%A2%A4%A4%A4%A6%A4%A8%A4%AA (あいうえお)
みたいにエンコードされて転送されるので、
受け取るのがブラウザならそれでいいのですが(ブラウザが元に戻してくれる)
そうじゃないのであれば、
res.setContentType("application/octed-stream");
res.setHeader("Content-Disposition", ...略)
OutputStream out = res.getOutputStream();
// で、out にそのままバイナリを書き出す
とすべきだと思います。
お返事ありがとうございました。
Harry_さんの上記のサンプルコードを使って
バイナリで書き出すと文字化けせずに
CSVファイルを作ることができました。
No.2
- 回答日時:
うまくいくか分かりませんが...
方法1.
response.setContentType("application/octet-stream;charset=Shift_JIS");
方法2.
OutputStream os = response.getOutputStream();
PrintWriter out = new PrintWriter(new OutputStreamWriter(os,"Shift_JIS"));
どちらか、もしくは両方でやって見てください。
お返事ありがとうございました。
akinori_sさんの方法とバイナリで書き込む方法を
あわせて行うと、無事日本語が文字化けせずに
CSVファイルを取得することができました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- PHP JSON_UNESCAPED_UNICODEをつけてもJSONの日本語がブラウザで表示されない 1 2022/11/16 07:22
- Android(アンドロイド) 海外のAndroid 端末の場合、日本語全角は、どう表示されるのでしょうか? 1 2022/10/02 21:16
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- その他(プログラミング・Web制作) ゲームを日本語化しようとすると文字化けしてしまいます。 2 2022/08/19 15:36
- Excel(エクセル) エクセルの文字化けを解除できる方法を教えてください。 5 2022/06/16 20:59
- Google Drive 【Googleドライブ】ドライブ上内でのフォルダ移行について 4 2022/11/30 12:50
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) Excelヘルプの原文を表示する最速の方法(手順)には? 1 2023/08/11 11:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSP使用によるスタイルシート読...
-
IIS環境でJAVAを使用したい
-
ソースパスとクラスパスの違い...
-
LaTeXでのアンダーバーの入力
-
TOMCAT_HOMEって?
-
Eclipse3.5EEでJavaのコンパイ...
-
TeXで図を挿入できません.助け...
-
javaが文字コードの影響でコン...
-
コンパイル出来ない
-
サクラエディタでjavaのプログ...
-
TEXについて
-
Eclipseで、プロジェクト名のと...
-
Eclipseのアンインストールの仕方
-
html上で、バッチやexeファイル...
-
正しいURL指定しているにもかか...
-
vs codeはオフラインでも使用で...
-
Javascriptの値をJava(JSP)へ渡...
-
Eclipse(JAVA)のデバッグで他...
-
コミット前の更新データをチェ...
-
Tera Term ネットワークに到達...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
.jarファイルの中身って書き換...
-
javaが文字コードの影響でコン...
-
コンパイルエラーに出てくる、i...
-
IIS環境でJAVAを使用したい
-
javax.servlet は存在しません...
-
サクラエディタでjavaのプログ...
-
Eclipse3.5EEでJavaのコンパイ...
-
javaの簡単なソースがコンパイ...
-
eclipseの構文エラーについて
-
TeXで図を挿入できません.助け...
-
「識別子がクラス名でも名前空...
-
TOMCAT_HOMEって?
-
JAVAでC/C++の条件コンパイルの...
-
ソースパスとクラスパスの違い...
-
Log4jのインストール
-
Javaのコンパイル結果が表示さ...
-
dokojavaのコンパイルについて
-
-deprecationとは?
-
日本語対応 逆コンパイラについて
-
システム環境変数と、ユーザー...
おすすめ情報