人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

java mailでメールを送信すると
はしごだか『?』が『!)』と変換できずに
文字化けしてしまいます。

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

メール送信の仕組みは、

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

というような感じです。


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


●質問者: samasuya
●カテゴリ:コンピュータ インターネット
✍キーワード:Java JSP Struts はしご クラス
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● t_shiono
●35ポイント

確認していませんが、「?」は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

◎質問者からの返答

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

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

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

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


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

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

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


2 ● t_shiono
●35ポイント

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)

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ