亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 sns 短信中創建正確的換行符?

如何在 sns 短信中創建正確的換行符?

C#
慕標5832272 2023-08-20 09:56:06
我正在使用AWS .NET-SDK通過AWS SNS 服務發送 SMS 消息。到目前為止,一切都很好; 但是當我使用換行符時,我會?在短信中的換行符開始之前看到此時的字符。在該字符之后,將按預期添加換行符。沒有這個字符是否有可能換行??我也嘗試過以下操作:StringBuilder.AppendLine,"\\n","\\r\\n",@"\n",@"\r\n",Environment.NewLine并將字符串編碼為UTF-8。不起作用的示例:// Create message stringvar sb = new StringBuilder();sb.AppendLine("Line1.");sb.Append("Line2.\\n");sb.AppendLine(Environment.NewLine);sb.Append(@"Line4\n");// Encode into UTF-8var utf8 = UTF8Encoding.UTF8;var stringBytes = Encoding.Default.GetBytes(sb.ToString());var decodedString = utf8.GetString(stringBytes);var message = decodedString;// Create requestvar publishRequest = new PublishRequest{    PhoneNumber = "+491234567890",    Message = message,    Subject = "subject",    MessageAttributes = "Promotional"};// Send SMSvar response = await snsClient.PublishAsync("topic", message, "subject");
查看完整描述

1 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

只需刪除所有對字符串進行編碼的嘗試即可。.NET 字符串已經是 Unicode,特別是 UTF16。PublishAsync需要 .NET 字符串,而不是 UTF8 字節。


至于為什么會出現這個錯誤,是因為代碼使用本地計算機的代碼頁將字符串轉換為字節,然后嘗試將這些字節當作UTF8讀取,但事實并非如此——使用UTF8作為系統代碼頁是一個測試版功能在 Windows 10 上,這會破壞很多應用程序。


SMS 的換行符是\n。除非您在 Linux 上使用 .NET Core,否則Environment.NewLine返回。StringBuilder.AppendLine使用所以你不能使用它。\r\nEnvironment.NewLine


除了 String.Join 之外,您不需要任何其他東西即可將多行組合成一條消息:


var message=String.Join("\n",lines);

如果您需要使用 StringBuilder,請使用在末尾AppendFormat附加一個帶有字符的行,例如:\n


builder.AppendFormat("{0}\n",line);

更新


我能夠使用以下代碼發送包含換行符的短信:


var region = Amazon.RegionEndpoint.EUWest1;

var  snsClient = new AmazonSimpleNotificationServiceClient(region);


var sb = new StringBuilder()

                .Append("Line1.\n")

                .Append("Line2.\n")

                .Append("Line4\n");

var message = sb.ToString();


// Create request

var publishRequest = new PublishRequest

{

    PhoneNumber = phone,

    Message = message,                

};


// Send SMS

var response = await snsClient.PublishAsync(publishRequest);

我收到的消息包含:


Line1.

Line2.

Line4.

我決定花點時間,將最后一行更改為:


.Append("Line4ΑΒΓ£§?\n");

我也毫無問題地收到了這條短信


查看完整回答
反對 回復 2023-08-20
  • 1 回答
  • 0 關注
  • 279 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號