[英]Removing xml namespaces in C# restful web service returned string
[英]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/>
不转化为<br/>
。 如果您正在使用JSON序列化,则不应该发生这种情况。 但如果您将其序列化为XML并且未在客户端进行正确解码,则会发生这种情况。
用这个:
string returnString = "Hello" + Environment.NewLine+ "My Name Is..";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.