C# 如何使用decode对字符串进行解码

C# 如何使用decode对字符串进行解码,c#,urldecode,C#,Urldecode,我的数据库存储以下值 a%0Ab%0Ac 我正在尝试对其进行解码,因为%0A代表新行 当我使用javascript时,我可以使用DecodeUri,它工作得很好,但我正试图让它与C一起工作 以下内容对字符串没有影响 @Server.HtmlDecode(item.Detail) @System.Net.WebUtility.HtmlDecode(item.Detail) @HttpUtility.HtmlDecode(item.Detail) 使用所有这些节目 a%0Ab%0Ac

我的数据库存储以下值

a%0Ab%0Ac
我正在尝试对其进行解码,因为%0A代表新行

当我使用javascript时,我可以使用DecodeUri,它工作得很好,但我正试图让它与C一起工作

以下内容对字符串没有影响

 @Server.HtmlDecode(item.Detail)  
 @System.Net.WebUtility.HtmlDecode(item.Detail)
 @HttpUtility.HtmlDecode(item.Detail)
使用所有这些节目

a%0Ab%0Ac
我希望通过使用Razor从我的角度实现以下目标

a
b
c

天真的回答,但它的工作

@{ 
    var toDecode = "a%0Ab%0Ac";
    var decoded = toDecode.Replace("%0A", "<br>");

    @Html.Raw(decoded)
}
您可以使用HttpUtility的UrlDecode方法解码%0A。然后,您可以使用自定义换行符替换新行。在您的示例中,html换行符标记

string decodeValue =  HttpUtility.UrlDecode(input).Replace("\n", "<br>");

您试图在视图中显示一个bc值?是的@dbraillon,在cshtml文件中。当然不是。它是存储的URL编码,您需要它的HTML编码。直接转换是毫无意义的,因此您需要对它进行URL反编码,无论它在数据库中编码的是什么,都不应该是,然后对它进行HTML反编码。顺便说一句:A%0不代表新行,%0A代表新行。请确保您的数据库使用unicode,这当然是一种编码,但不是URL或HTML编码,而是按照您获得的值将其保存在数据库中。如果您对它们进行编码,请确保首先将它们解码为中性格式。当您使用该值时,以html显示它,并以适当的格式进行编码。进一步建议:忽略包含替换调用的所有答案-现有函数以完整可靠的方式完成所有这些操作,例如HttpUtility可能过于天真的答案:或者也要注意其他特殊字符。。。