これはあなたの他の質問への回答でした、それは削除されたようです....要点はまだ残っています。
古典的なUnicodeからASCIIへの問題のように見えます。秘訣は、それが起こっている場所を見つけることです。
.NETは、Unicodeで始まる(またはデフォルトのままである)と言われている場合、Unicodeで正常に動作します。
私の推測では、受信アプリはそれを処理できません。したがって、おそらく、String.Emptyを使用したEncoderReplacementFallbackでASCIIEncoderを 使用します。
using System.Text;
string inputString = GetInput();
var encoder = ASCIIEncoding.GetEncoder();
encoder.Fallback = new EncoderReplacementFallback(string.Empty);
byte[] bAsciiString = encoder.GetBytes(inputString);
// Do something with bytes...
// can write to a file as is
File.WriteAllBytes(FILE_NAME, bAsciiString);
// or turn back into a "clean" string
string cleanString = ASCIIEncoding.GetString(bAsciiString);
// since the offending bytes have been removed, can use default encoding as well
Assert.AreEqual(cleanString, Default.GetString(bAsciiString));
もちろん、昔はループして、127を超える文字を削除していました...少なくとも米国の私たちの文字です。;)