テキストファイルをUTF_8にエンコードしますか?

私は添付ファイル付きの電子メールを送信するJavaプロジェクトを作成しています。

私のテストケースでは、添付ファイルtestfile.txtに日本語の単語「Hiraganas and Katakanas」を追加します(これはUTF-8エンコーディングで保存しました)。

しかし、私が自分のテストメールを自分宛てに送信すると、添付されたtestfile.txtを開いた後、すべての日本語のCharsが "????"に変わります。

だから私はなぜこれが起こるのだろうかと疑問に思います...?

ありがとうございました

アラン

P.S.より具体的には、ここに私のコードです。 メールを送信するためにmail.jarを使用しています。

ファイルを取得する方法は次のとおりです。

/**
 * Add an attachment to the Email.
 * @param filePath
 */
public void setFile(String filePath){

    attachment = new File(filePath);

}

以下は、ファイルをMIMEの電子メール部分に添付する方法です。

/*Add attachment if an attachment is given.*/
    if(attachment != null){
    MimeBodyPart attachmentPart = new MimeBodyPart();
    attachmentPart.attachFile(attachment);
    multipart.addBodyPart(attachmentPart);
    }
0
追加された 編集された
ビュー: 3
あなたはもっと具体的になりますか?どのように電子メール/テストファイルを開きますか?いくつかのコードスニペットを投稿できますか?
追加された 著者 alexvetter,

2 答え

適切な文字セットを使用してファイルを読み書きしていることを確認する必要があります。

私。プラットフォームのデフォルトの文字セットを使用するそうではありません:

Reader reader = new FileReader("/testfile.txt");
// ...

しかし、それ以上に、 InputStreamReader あなたが明示的に適切な文字セットを指定するところ:

Reader reader = new InputStreamReader(new FileInputStream("/testfile.txt"), "UTF-8");
// ...

また、電子メール添付ファイルの Content-Type ヘッダーでは、charset属性を設定する必要があり、UTF-8を使用して添付ファイルを書き込む必要があります。あなたが使用しているメールAPIが不明なので、詳細を提示することはできません。代わりに、 InputStream / OutputStream を使用するだけでコンテンツを純粋なバイトとしてストリーミングすることができ、バイトが表す文字セットには影響しません。


Update: you're using Javamail's MimeBodyPart without explicitly specifying the content type with the charset attribute. Now you're dependent on the mail client whether it treats the content as UTF-8 or not. Fix it as follows:

MimeBodyPart attachmentPart = new MimeBodyPart();
attachmentPart.attachFile(attachment);
attachmentPart.setHeader("Content-Type", "text/plain;charset=utf-8");
multipart.addBodyPart(attachmentPart);
6
追加された
@mortensi:その解決策の回避策(解決しない!)まったく別の問題。
追加された 著者 BalusC,
この回答はうまくいくようです: stackoverflow.com/questions/4960556 /…
追加された 著者 mortensi,
私はいくつかのスカンジナビア文字でHTMLファイル(添付ファイルとして)を送ろうとしました。私はそれでしばらくの間苦労し、上記のリンクは私のためのケースを解決しました。
追加された 著者 mortensi,

This thread seems to address setting the characters set correctly for mime body content (last comment).

0
追加された