java mailでメールを送信すると

はしごだか『髙』が『!)』と変換できずに
文字化けしてしまいます。

これを解消するにはどうしたらよいでしょうか?

メール送信の仕組みは、

 JSPのフォーム=>StrutsのActionクラスにsbumit=>Java mailで送信

というような感じです。


javaのバージョンは、1.5.0_04 です。
java mail のバージョンは、わかりません・・・。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2007/06/28 22:05:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:t_shiono No.1

回答回数256ベストアンサー獲得回数22

ポイント35pt

確認していませんが、「髙」は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)として扱ってあげることにより、対処できるのではないでしょうか?

参考:

http://blog.livedoor.jp/loopus/archives/50146726.html

id:samasuya

回答ありがとうございます。

残念ながらその部分ではなく、

MimeMessageでsetTextする部分が問題みたいです・・・。

msg.setText(body, "iso-2022-jp");


としてるんですが、この部分の変換で

失敗してるんですよね、おそらく。

こちらの対策ご存知ないでしょうか?

2007/06/22 11:21:30
id:t_shiono No.2

回答回数256ベストアンサー獲得回数22

ポイント35pt

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...

id:samasuya

ありがとうございます。

本文全体の問題ではなく、一部の文字の問題なので

JavaMailというより、JavaのJISへの変換部分の問題かと認識してます。

http://www.sk-jp.com/cgi-bin/treebbs.cgi?kako=1&log=644


辺りでしょうかね・・・。


読んでもよく理解できないんですけど・・・(T_T)

2007/06/24 18:52:08

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません