【发布时间】:2017-06-05 18:48:57
【问题描述】:
如何解码得到下面的结果?
/browse_ajax?action_continuation=1\u0026amp;continuation=4qmFsgJAEhhVQ2ZXdHFQeUJNR183aTMzT2VlTnNaWncaJEVnWjJhV1JsYjNNZ0FEZ0JZQUZxQUhvQk03Z0JBQSUzRCUzRA%253D%253D
/browse_ajax?action_continuation=1&continuation=4qmFsgJAEhhVQ2ZXdHFQeUJNR183aTMzT2VlTnNaWncaJEVnWjJhV1JsYjNNZ0FEZ0JZQUZxQUhvQk03Z0JBQSUzRCUzRA%253D%253D
我已经尝试过这些,也多次使用它们,因为我读取的字符串可能会被多次编码。
System.Text.RegularExpressions.Regex.Unescape(string)
System.Uri.UnescapeDataString(string)
System.Net.WebUtility.UrlDecode(string)
这里的哪个函数是正确的,或者更确切地说,我需要以什么顺序调用它们以获得该结果。由于字符串不同,集合中可能还有其他特殊字符,因此自行编辑它的变通方法有点太冒险了。
必须对字符串进行解码才能使用new System.Net.WebClient().DownloadString(string)。
编辑:所以我发现上面的陈述是错误的,我不必解码就可以使用WebClient.DownloadString(string)。然而,下载的字符串也有类似的编码。在下载之前将WebClient 的编码属性设置为UTF8 可以完成大部分工作,但是某些字符似乎仍然损坏,例如:双引号和与符号保持\u0026quot; 和\u0026amp;。
我不知道怎么把\u0026变成&,所以我可以改&到&。
【问题讨论】:
-
如果您找到了问题的答案,那么您应该将其发布为答案,而不是作为问题的编辑。
标签: c# html-escape-characters unicode-escapes string-decoding