字符串生成器将 % 添加到 URL 的末尾
本文关键字:URL 添加 字符串 | 更新日期: 2023-09-27 18:31:19
我在代码中构建字符串时遇到了一个小问题。当我调试我的页面时,网址不正确。例如,当点击我页面上的链接时,谷歌的网址是这个。http://www.google.co.uk%22%22/
有关代码,请参见下文。
sb.Append(@"<a href=" + r["Url"].ToString() + "'"" + @""" target=""blank"">");
sb.Append(@"<img src=""../ShowImage.ashx?id=" + r["Image_id"] + "'" title='"" + r["Title"].ToString() + "'" alt='"" + r["Alt_text"].ToString() + "'" >");
sb.Append("</a>");
我构建字符串的方式有错误吗?
谢谢。
您正在混合使用'
( "'""
) 转义的引号与使用 " ( @"""
) 转义的引号,并且有一个太多。试试这个:
sb.Append(@"<a href=""" + r["Url"].ToString() + @""" target=""blank"">");
%22
是"
的字符串编码版本
尝试:
sb.Append(@"<a href=" + r["Url"].ToString() + "' + @""" target=""blank"">");
这是因为您在 URL 之前没有任何引号,但您之后有两个引号。省略引号是可以的(对于没有空格的值),但你必须省略它们。省略起始引号时,末尾的引号(在本例中为标记)将成为值的一部分。
另外,当你有一个StringBuilder时,为什么要连接字符串?直接使用 Append
方法,而不是先连接字符串,然后追加结果。
sb
.Append("<a href='"").Append(r["Url"].ToString()).Append("'" target='"blank'">")
.Append("<img src='"../ShowImage.ashx?id=").Append(r["Image_id"]).Append("'" title='"").Append(r["Title"].ToString()).Append("'" alt='"").Append(r["Alt_text"].ToString()).Append("'">")
.Append("</a>");