はしごだか『髙』が『!)』と変換できずに
文字化けしてしまいます。
これを解消するにはどうしたらよいでしょうか?
メール送信の仕組みは、
JSPのフォーム=>StrutsのActionクラスにsbumit=>Java mailで送信
というような感じです。
javaのバージョンは、1.5.0_04 です。
java mail のバージョンは、わかりません・・・。
確認していませんが、「髙」はWindows-31J(MS932)には含まれるが、Shift JISには含まれない文字のようです。
参考:
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=29751&am...
Javaの文字列内ではUTF-8として、扱われるので入力データを適切にUTF-8に変更しなければなりません。しかし、Shift JISのデータだと判断した状態でUTF-8にエンコードすると、不正な文字として処理されてしまいます。
恐らく、FormBeanのエンコード変換部分で、日本語のエンコードの処理を行ったりしていると思うのですが、その際に、Shift JISとして扱っているはずです。その部分を、Windows-31j(MS932)として扱ってあげることにより、対処できるのではないでしょうか?
参考:
Googleで上位に来るので、既に見ているとは思いますが、以下の記事は参考になりますか?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=26756&am...
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=12&t...
ありがとうございます。
本文全体の問題ではなく、一部の文字の問題なので
JavaMailというより、JavaのJISへの変換部分の問題かと認識してます。
http://www.sk-jp.com/cgi-bin/treebbs.cgi?kako=1&log=644
辺りでしょうかね・・・。
読んでもよく理解できないんですけど・・・(T_T)
回答ありがとうございます。
残念ながらその部分ではなく、
MimeMessageでsetTextする部分が問題みたいです・・・。
msg.setText(body, "iso-2022-jp");
としてるんですが、この部分の変換で
失敗してるんですよね、おそらく。
こちらの対策ご存知ないでしょうか?