1

我有一个消息传递系统,它是一个 .NET 2 ASMX Web 服务,非常基本的系统。我推送消息并希望在消息中包含换行符,以便在接收端对其进行格式化。例如,我想发送一个字符串,例如:“Hello\n\nMy Name Is...”,并让它有两个换行符。当接收器读取文本时,它实际上是在文本中输出 \n。我怎样才能让 \n 被解释为好像我是用 C# 编写的一样?或 \t 等。

谢谢你。

4

4 回答 4

2

您应该使用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();
于 2012-05-24T23:46:28.320 回答
1

Web 服务很可能发送回消息,回车符列为“%0D”。我在我的程序中所做的是使用:

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

这似乎对我有用。

我相信你也可以使用:

str.Replace("%0D", "\n");
于 2012-05-24T23:58:08.273 回答
0

您必须将 替换\n为浏览器将其解释为新行的内容,即<br/>. 我想您将它用作 HTML 字符串。

此外,您需要确保它不是 HtmlEncoded,即您<br/>的未转换为&lt;br/&gt;. 如果您使用 JSON 序列化,则不应发生这种情况。但如果您将其序列化为 XML 并且在客户端未正确解码,则会发生这种情况。

于 2012-05-25T00:19:08.433 回答
0

用这个:

string returnString = "Hello" + Environment.NewLine+ "My Name Is..";
于 2012-05-25T03:27:47.623 回答