Безопасно ли заменить HttpUtility.UrlEncodeUnicode на HttpUtility.UrlEncode - PullRequest
1 голос
/ 26 сентября 2019

При создании некоего устаревшего кода я получил предупреждение:

'System.Web.HttpUtility.UrlEncodeUnicode (string)' устарел: '' Этот метод создает нестандартный вывод и имеетпроблемы совместимости. Предпочтительной альтернативой является UrlEncode (String). "'

Безопасно ли заменить HttpUtility.UrlEncodeUnicode(string) на HttpUtility.UrlEncode(string)?Оба метода дают идентичные результаты для какой-либо строки?

Если нет, что является предпочтительной альтернативой?

Ответы [ 2 ]

1 голос
/ 26 сентября 2019

Оба метода дают одинаковые результаты для любой строки?

Нет, пример:

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

Безопасно ли заменить HttpUtility.UrlEncodeUnicode (string) с HttpUtility.UrlEncode (string)?

Почти безопасно, это зависит от декодера, большинство декодеров может обработать результат из UrlEncode, потому что это стандартный, если ваш проект использует нестандартныйодин, то это не безопасно.(КСТАТИ HttpUtility.UrlDecode может обрабатывать оба результата.)

0 голосов
/ 26 сентября 2019

Основано на Microsoft Источник ссылки (который имеет исходный код ссылок .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(*), вы можете проверить исходный источник с здесь

...