2

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

4

2 に答える 2

1

出力ストリームのエンコーディングをUTF-8に明示的に設定するのを忘れた可能性があります。Javaの通常のデフォルトのエンコーディングは、プラットフォームローカルの8ビットのものであり、不適合を?文字にいたずらに置き換えます。

おそらく、プログラム自体でこれを行う必要があります。‑Dfile.encoding=UTF‑8ただし、javacコマンドラインを渡すことで問題が解決する場合があります。ただ依存します。

于 2011-01-25T20:10:37.087 に答える
1

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

于 2011-01-25T19:41:21.933 に答える