赋值字符串后用于转义的反斜杠
本文关键字:转义 字符串 用于 赋值 | 更新日期: 2023-09-27 17:51:16
在我的实体的ToString
方法中,我尝试生成一个包含引号的信息字符串。所以我在引号前使用反斜杠,一切都很好,直到我试图将返回值赋给字符串变量,之后所有反斜杠返回。这是ToString函数:
public override string ToString()
{
string content = "{";
content += "'"serviceType'":" + ServiceType.Name + ",";
content += "'"Debt'":" + amount;
content += "}";
return content;
}
之后,我尝试使用StringWriter
和HtmlTextWriter
来生成HTML,但在将返回值分配给字符串变量后,变量中有很多'
, 'r
, 'n
, 't
。下面是函数:
public string ToHtmlString()
{
StringWriter stringWriter = new StringWriter();
using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter))
{
writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
writer.AddStyleAttribute(HtmlTextWriterStyle.BorderStyle, "1px solid black");
writer.AddStyleAttribute(HtmlTextWriterStyle.Direction, "rtl");
writer.RenderBeginTag(HtmlTextWriterTag.Table);// Begin Table
writer.RenderBeginTag(HtmlTextWriterTag.Tr);
writer.RenderBeginTag(HtmlTextWriterTag.Td);
writer.Write("زیر خدمت");
writer.RenderEndTag();
writer.RenderBeginTag(HtmlTextWriterTag.Td);
writer.Write(ServiceType.Name);
writer.RenderEndTag();
writer.RenderEndTag();
writer.RenderBeginTag(HtmlTextWriterTag.Tr);
writer.RenderBeginTag(HtmlTextWriterTag.Td);
writer.Write("مبلغ");
writer.RenderEndTag();
writer.RenderBeginTag(HtmlTextWriterTag.Td);
writer.Write(amount);
writer.RenderEndTag();
writer.RenderEndTag();
writer.RenderEndTag();// End Table
}
return stringWriter.ToString();
}
和赋值给变量后:
<table style='"width:100%;border-style:1px solid black;direction:rtl;'">'r'n't<tr>'r'n't't<td>زیر خدمت</td><td>درمان</td>'r'n't</tr><tr>'r'n't't<td>مبلغ</td><td>6000</td>'r'n't</tr>'r'n</table>
这是怎么回事?
这个结果似乎可以在c#中的webBrowser控件中使用。如果你想避免这些换行符和制表符(对于一个真正的浏览器),你可以尝试像这样替换几行代码。
旧代码:using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter))
{
新代码:using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter, string.Empty))
{
writer.NewLine = string.Empty;
htmltextwwriter中的第二个参数是用作制表符的字符串。所以你得到的结果是:
<table style='"width:100%;border-style:1px solid black;direction:rtl;'"><tr><td>زیر خدمت</td><td>درمان</td></tr><tr><td>مبلغ</td><td>6000</td></tr></table>
编辑:为了避免'",你可以使用<? php echo
或<%=
(对于asp),或者更好地将结果修改为:
return stringWriter.ToString().Replace("'"", "'");