- PR -

jspの文字化けについて

1
投稿者投稿内容
delix
会議室デビュー日: 2005/10/13
投稿数: 14
投稿日時: 2005-10-15 00:09
今jspにて掲示板を作っているのですが、
pageContext.setAttribute("name",name,pageContext.REQUEST_SCOPE);
pageContext.forward("bbs.jsp");
にてデータを送り、確認画面で表示して、
それからファイルに書き込むのですが
ファイルに書き込むと文字化けしてしまいます。
charset=shift_jis" pageEncoding="Windows-31J"
request.setCharacterEncoding("Windows-31J");
など記述していますが"あ"が"繝"のように文字化けするみたいなんです。
name=new String(name.getBytes("8859_1"), "shift_jis");
これをコメントアウトすると今度は??に文字化けしてしまいます。
色々と調べましたが解決法がわかりません。
どなたか教えて頂けませんか。
ご返答お待ちしてます
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-10-15 02:19
>色々と調べましたが解決法がわかりません。
何をどこまでしらべたのかが分からないと、何が足りないか指摘するのは難しいですね。

まずはどの時点で文字化けが発生しているのかを確認しましょう。

>request.setCharacterEncoding("Windows-31J");
>など記述していますが"あ"が"繝"のように文字化けするみたいなんです。
>name=new String(name.getBytes("8859_1"), "shift_jis");
まずはファイルに書き出さずに、リクエストで受け取った文字列が適切にエンコードされているか確認してみては?
setCharacterEncoding() してあれば、 str.getBytes("8859_1")..とかする必要はありません。
delix
会議室デビュー日: 2005/10/13
投稿数: 14
投稿日時: 2005-10-15 10:02
ご返答ありがとうございます。
リクエストで受け取った文字列を確認画面にて表示している段階では文字化けはおきてないみたいです。
その時点で文字化けはおきてないんですが、そこから書き込みを行うと文字化けがおきて書き込まれてしまうんです。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-10-15 13:04
リクエストで受け取った文字列は化けていないと言うことは JSP は関係ないということですか?
スタンドアロンのJavaプログラムでも再現できるでしょうか?
JSP と切り離して、再現条件を探りましょう。

[ メッセージ編集済み 編集者: インギ 編集日時 2005-10-15 13:18 ]
delix
会議室デビュー日: 2005/10/13
投稿数: 14
投稿日時: 2005-10-15 16:36
ご返答ありがとうございます。
ファイル書き込みのところで詳しく調べてみると
OutputStreamWriterの引数でエンコードを指定するといいみたいなので
やってみると正常に書き込むことができました。
"〜"など一部の文字だけ文字化けしているので調べたいと思います。
どうもありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)