- 締切済み
JavaMailのcharaset
Javaというより、メール一般の話だと思いますが。 メールを行う際に、日本語を送る際は、「ISO-2022-JP」がお約束になっていると思います。 このお約束は調べた限りだと、ISO-2022-JPでないと、 1)MTAが対応していない場合がある。 2)受信先のMUAが対応していない場合がある。 ということだと理解しています。 1)に関しては、Base64でENCODEすればいいような気がします。添付ファイルなどでは、MS932普通に使ってますし。 2)に関しても、現状ほとんどのMUAは対応しているような感覚なんですが。実際、OutlookExpress,gooメールやthunderbirdはWindows-31Jに対応してました。 メール本文のcharsetに「Windows-31J」を使用するのはやはり間違っているのでしょうか。エンドユーザの立場に立つと、普段普通に使用している文字(機種依存文字)が使用できたほうが良いのは間違いないでしょうから。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- bgbg
- ベストアンサー率53% (94/175)
結論から言うと間違っています。 メールを受信するユーザがWindowsマシン(Windows-31Jを理解できるマシン)を使用しているという保証がどこにあるのでしょうか。 ISO-2022-JPを使うのは、どのようなコンピュータでもメールを読めるように策定された最大公約数的な仕様です。 それに、すべての人がOutlookのようなグラフィカルなMUAを使用しているわけではありません。 またMTAに関しても、メーリングリストのようなものはBase64でエンコードしても結果的に文字化けしてしまうものもあります。 エンドユーザの立場に立つと、送られてきても読めないメールが存在しないほうが良いのは間違いないでしょう。
補足
相手を特定できない場合であれば、Windows-31Jは確かに良くないと思います。 今回、Windows-31Jの使用を考えた理由は、以下になります。 1)相手は特定できる。ただし、どんなメーラーを使用しているかはわからない。*使用可能なメーラーをお願いすることが可能。 2)他のシステムに格納されている項目をメールに印字する必要がある。ただし、機種依存文字を使用しているかどうかは定かではない。その項目はお客様の会社名である。 私はケースバイケースだと思うのですが。 エンドユーザの立場という点でも、視点の違いが大きいような気がします。(CUIのメールを使用している人の立場で見るか、Windows、Outlookしか使用していない人での立場でみるか。) ISO-2022-JPでは表現できない名前の方もいたりしますし。(ハシゴ高等) ISO-2022-JPが一般的とはいえ、所詮日本でしか通用しないローカルルールだと思います。そういう意味では、Windwos-31Jも変わらないと思いますので、UTF-8も試してみたのですが、gooメールで文字化けを起こしたので、あまり一般的ではないのかなと思いあきらめた経緯があります。 個人的には、多くのメーラーがUTF-8をサポートする方向に進むべきではないかと思っています。 いろいろ反発されそうなことばかり書きましたが、現状、不特定多数の方に送る場合は、ISO-2022-JPのほうが良いというのは、同意いたします。