2017-05-19 3 views
1

私はsmtpサービスを使用して顧客にSMSメッセージを送信するC#アプリケーションを開発中です。現在、アットマークはメッセージの本文とメッセージの件名の両方で疑問符に置き換えられます。私はユニコード、UTF-8、UCS-2、ASCIIのような多くの種類のエンコーディングを試していますが、うまく動作します。誰もそれを避ける方法を知っていますか?なぜ、記号はSMSのテキストメッセージの疑問符として置き換えられますか?

var mailMessage = new MailMessage 
{ 
     IsBodyHtml = true, 
     SubjectEncoding = Encoding.Unicode, 
     Subject = "@@" + subject + "@@", 
     BodyEncoding = Encoding.UTF8, 
     Body = messageBody ?? "", 
     From = new MailAddress(from, "My Name"), 
}; 
    using (var smtpClient = new SmtpClient()) 
{ 
     using (mailMessage) 
     { 
     smtpClient.Send(mailMessage); 
     } 
} 
... 
+0

電子メールをSMSに変換するプラットフォームは何ですか? – Poosh

+0

.NETライブラリの内部実装に依存していると思います。 – user8034232

答えて

1

あなたのコードはおそらく責任がありません。そしてSMSのために、世界の携帯電話の大半で使用されるエンコーディングは、電話や各キャリアの外側にあるものではありませんGSM 03.38ある

翻訳に最も可能性の高い
  • ロストの真のケースです。
  • 電子メールの標準エンコーディングはASCIIで、オプションのUTF-8をサポートしています。

問題は、あなたのコードに含まれていないSMS(電子メール)からSMSにブリッジを渡すときの2つの標準間の変換です。おそらく、電話会社が提供する無料のサービスです。これは、その中にお金がないので、彼らによって修正されない可能性が最も高いものです。

また、かなりの間知られていたようです。私たちが5年前に戻った場合、私たちはこれを見つけることができます投稿:converting Twilio sms body to a string - encoding error for @ symbolあなたは経験しているものに似たような強力な音がします。

したがって、現実的に起こりうる唯一の修正は、SMTPを使用してテキストメッセージを送信するという領域を去ります。比較的簡単なAPIを介してメッセージを送信するために使用できるSMSゲートウェイサービスは数多くあります。彼らはお金を要するかもしれないが、彼らが言うように。あなたはあなたが支払うものを手に入れます

関連する問題