簡體   English   中英

讓C#尊重\\ n從Web服務返回一個字符串?

[英]Get C# to respect \n returned in a string from a web service?

我有一個消息傳遞系統,它是一個.NET 2 ASMX Web服務,非常基本的系統。 我推送消息,並希望在消息中有換行符號,以便在接收端格式化。 例如,我想發送一個字符串,例如:“Hello \\ n \\ n我的名字是......”並讓它有兩個換行符。 當接收器讀取文本時,它實際上輸出文本中的\\ n。 我怎樣才能將\\ n解釋為好像我是用C#編寫的? 或\\等

謝謝。

您應該使用Environment.NewLine編寫消息,以插入用於表示系統換行符的字符。

請參閱此處以獲取參考

但是使用Environment.NewLine有一些問題。
例如,您的消息應該以這種方式編寫

string msg = "Hello" + Environment.NewLine + Environment.NewLine + "My Name Is...";

從程序員的角度來看,使用起來有點麻煩。

然后你可以為字符串類編寫一個擴展方法,它接收你的消息並在占位符的位置插入Environment.NewLine字符。

這個例子使用| (管道)字符作為換行符pos的占位符。

public static string InsertLineBreaks(this string inMsg)
{
    Strinbuilder sb = new StringBuilder(inMsg);
    sb.Replace("|", Environment.NewLine);
    return sb.ToString();
}

你可以用這種方式調用這個擴展名

string msg = "Hello||My Name Is...".InsertLineBreaks();

Web服務可能會發回消息,並將回車列為“%0D”。 我在我的程序中所做的是使用:

str.Replace("%0D", Environment.NewLine);

這似乎對我有用。

我相信你也可以使用:

str.Replace("%0D", "\n");

您必須將\\n替換為瀏覽器解釋為新行的內容,即<br/> 我想你將它用作HTML字符串。

除此之外,您還需要得到肯定它不是HtmlEncoded,即你的<br/>不轉化為&lt;br/&gt; 如果您正在使用JSON序列化,則不應該發生這種情況。 但如果您將其序列化為XML並且未在客戶端進行正確解碼,則會發生這種情況。

用這個:

string returnString = "Hello" + Environment.NewLine+ "My Name Is..";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM