2011-01-25 4 views
2

メールを送信するスタンドアロンアプリケーションを呼び出すためにJUnitテストケースを実行すると、文字がメールに正しく表示されますが、このアプリケーションが表示されたスレッドを通じて別のマシンで実行されていますか?実際の文字の代わりに。 私のこのプログラムは、unixのsendMailを使い、リモートマシンはPOSTFIXを使います。 誰かが問題の考えられる原因を考えることができますか?UTF-8文字が表示されない

+0

アプリケーションでデフォルトのMIME文字セットを指定する必要がある場合があります。 –

答えて

1

コードを表示してください。しかし、ほとんどの場合、使用する文字エンコードを明示的に指定しておらず、あるプラットフォームのデフォルトは期待どおりに動作し、別のプラットフォームのデフォルトは動作しません。

1

おそらく、出力ストリームのエンコーディングをUTF-8に明示的に設定することを忘れていると思います。 Javaの通常のデフォルトのエンコーディングは、不適切な部分をわざわく?文字に置き換えるプラットフォームローカルの8ビットのものです。

これはプログラム自体で行うべきでしょう。しかし、javacコマンドラインで‑Dfile.encoding=UTF‑8を渡すことで逃げるかもしれません。ただ依存する。

+0

これは「読み取り専用」プロパティとして文書化されています。つまり、JVMはプラットフォームのデフォルトを決定し、このプロパティを使用して使用可能にします。つまり、私はこれがSun JVM上で動作すると信じています。 – dty

+0

@dty:これはAppleでも動作します。 – tchrist

+0

それにもかかわらず、これは読み取り専用として文書化されているので、このアプローチが将来的には機能しなくなっても驚かないでください。 – dty

関連する問題