【问题标题】:Decoding url encoded with encodedURI in javascript to C#将javascript中使用encodedURI编码的url解码为C#
【发布时间】:2015-11-06 00:15:56
【问题描述】:

我正在添加简单的文章。我有一个 CKEditor,我从这些数据中获取并在 javascript 中使用 encodeURI 对其进行编码并将其发送到 ViewController 然后我将其放入数据库中的表中。然后我想展示这篇文章,所以我<% HTML.RenderAction("MyAction); %>",在这个动作中,我使用HttpUtility.UrlDecode(content)从数据库中解码url。但它显示例如 HTML 标签而不是被格式化。它显示为文本。在 Chrome 中,我单击右键并显示 HTML,然后会出现类似的文字:

;这里有一些文字< /p>

我添加的字符之间没有空格,因为它显示了

我该怎么做才能让它正常工作?

【问题讨论】:

    标签: javascript c# html url decode


    【解决方案1】:

    由于你解码的是html而不是url,所以你需要使用HttpUtility.HtmlDecode

    HttpUtility.UrlDecode 不知道如何处理 html 标签,只能处理 url 格式,所以尝试对 html 进行 url decode 会提供类似:

    & lt; p &gt ; Some text here&lt ; / p & g t;
    

    这是 html 的字符串表示形式,它基本上证明了它所做的事情实际上是正确的,因为它是在解码,而不是您需要的格式。结论是:

    HttpUtility.HtmlDecode
    

    【讨论】:

    • 但是我用 javascript 将它编码为 URI,并且有一个百分比编码。
    【解决方案2】:
    1. 你需要使用HttpUtility.HtmlDecode,而不是HttpUtility.UrlDecode
    2. 也许您还需要使用@Html.Raw() 来显示您的内容

    【讨论】:

    • 我是用 URI 编码的,所以用 HttpUtility.HtmlDecode 解码不起作用。但第二点是对的。我在 MVC 2 中工作,所以没有 @Html.Raw(),但我使用了 MVCHtmlString.Create(content),就是这样!
    猜你喜欢
    • 2015-03-03
    • 2019-06-01
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多