メールを送信するスタンドアロン アプリケーションを呼び出すために JUnit テスト ケースを実行すると、メールに文字が正しく表示されますが、このアプリケーションがスレッドを介して別のマシンで実行されると、表示されますか? 実際のキャラクターの代わりに。私の送信するこのプログラムは、UNIX の sendMail を使用し、リモート マシンは POSTFIX を使用します。誰かが問題の考えられる理由を考えることができますか?
2 に答える
1
出力ストリームのエンコーディングをUTF-8に明示的に設定するのを忘れた可能性があります。Javaの通常のデフォルトのエンコーディングは、プラットフォームローカルの8ビットのものであり、不適合を?
文字にいたずらに置き換えます。
おそらく、プログラム自体でこれを行う必要があります。‑Dfile.encoding=UTF‑8
ただし、javacコマンドラインを渡すことで問題が解決する場合があります。ただ依存します。
于 2011-01-25T20:10:37.087 に答える
1
いくつかのコードを表示します。しかし、ほとんどの場合、使用したい文字エンコーディングを明示的に指定しておらず、あるプラットフォームではデフォルトが期待どおりに機能し、別のプラットフォームではデフォルトが機能しません。
于 2011-01-25T19:41:21.933 に答える