2011-07-25 15 views
4

私はさまざまな文化の人々に電子メールを送ります。データは適切なエンコーディングでファイルから取得されます。しかし、私はそれらを処理するために最初の数行を読む必要が だから私は(被写体などを取得する):ランダムコードで改行を取得する

var lines = File.ReadAllLines(filename, encoding); 
... read first few lines up to blank... 
lines = String.Join(newline, lines.skip(lineNum)); 

をしかし、私は改行の適切な値を取得するために何をすべきか分かりません。各エンコーディングごとに異なり、Webサーバーのエンコーディングではなく電子メール受信者の特定のエンコーディングに改行が必要なためEnvironment.NewLineを使用できません。

答えて

4

あなたはまだのテキストを扱っているので、エンコード(文字データのバイナリ表現との変換)を心配する必要はありません。あなたはを実行しますは、「改行」の異なる表現が文字の形でであると心配する必要があります。

最終的にメールを送信するために使用しているものは明確ではありません。使用しているものがあれば、とにかくすべてを並べ替えることができると思います。しかし、RFC 822は、行をCRLF( "\ r \ n")で区切っているように定義しています。

でもの場合、HTMLバージョンのテキストを送信しますが、これには行と段落の区切りにHTMLタグが含まれます。

+0

グレートポイントを。 '\ n'はエンコーディングではない文字です。 font-> glyph-> character-> code-> encodingのスタックがかなりありますが、それは追跡が難しいです!!将来読んでいる人のために、私は\ nに参加しました。すべてがうまくいっています(RFC822は私が使用している基盤となるメールインフラストラクチャによって処理されました)。 –

1

あなたはエンコードの問題についてあまり気にしないように、行ごとにそれを読む必要があります。

while ((line = File.ReadLine()) != null) 
    { 
     if (line != String.Empty) 
     lines += line + Environment.NewLine; 
    } 
関連する問題