用HttpUtility.UrlEncode替换HttpUtility.UrlEncodeUnicode是否安全?>

问题描述 投票:1回答:2

我在构建一些旧代码时收到警告:

'System.Web.HttpUtility.UrlEncodeUnicode(string)'已过时:'“ This该方法产生不符合标准的输出并具有互操作性问题。首选的替代方法是以UrlEncode(字符串)。“'

HttpUtility.UrlEncodeUnicode(string)替换HttpUtility.UrlEncode(string)是否安全?两种方法都为任何字符串产生identical

结果吗?

如果没有,首选的替代方法是?

<<

基于Microsoft Reference Source(具有.NET引用的源代码)。 HttpUtility.UrlEncode(string)HttpUtility.UrlEncodeUnicode(string)的替代,如下所示:
[Obsolete("This method produces non-standards-compliant output and has interoperability issues. The preferred alternative is UrlEncode(String).")] public static string UrlEncodeUnicode(string str) {..} // just removed the code in case of copy-rights.

因此,最好使用UrlEncode(*)而不是UrlEncodeUnicode(*),您可以从here检查参考源>

这两种方法对任何字符串都产生相同的结果吗?
否,示例:

HttpUtility.UrlEncodeUnicode("☺"); // %u263a HttpUtility.UrlEncode("☺") // %e2%98%ba

用HttpUtility.UrlEncode(string)替换HttpUtility.UrlEncodeUnicode(string)是否安全?
这取决于解码器,大多数解码器可以处理UrlEncode的结果,如果您的项目使用非标准的项目,那么这是不安全的。 (BTW HttpUtility.UrlDecode可以处理两个结果。)
c# urlencode
2个回答
0
投票

0
投票
这两种方法对任何字符串都产生相同的结果吗?
否,示例:
© www.soinside.com 2019 - 2024. All rights reserved.