Сервер. UrlEncode по сравнению с HttpUtility. UrlEncode

Похоже, вам необходимо проверить PhotoCapabilities вашего ImageCapture, прежде чем вы сможете использовать параметр photoSettings в ImageCapture.takePhoto (photoSettings) . [1111 ]

Для этого вам необходимо вызвать метод getPhotoCapabilities() вашего ImageCapture , а затем проверить диапазоны, установленные как imageHeight и imageWidth.

const capture = new ImageCapture(track);
const { imageWidth, imageHeight } = await capture.getPhotoCapabilities();
const width = setInRange(required_width, imageWidth);
const height = setInRange(required_height, imageHeight);
const photoSettings = (width && height) ? {
  imageWidth: width,
  imageHeight: height
} : null;
const pic = await capture.takePhoto(photoSettings);

function setInRange(value, range) {
  if(!range) return NaN;
  let x = Math.min(range.max, Math.max(range.min, value));
  x = Math.round(x / range.step) * range.step; // take `step` into account
  return x;
}

https://jsfiddle.net/bLrvyet5/

Но может случиться так, что требуемая ширина и высота не указаны в этих MediaSettingsRange ] и, таким образом, вам, возможно, придется самостоятельно изменить размер этого изображения на холсте.

173
задан Alex Angas 1 October 2014 в 00:19
поделиться

5 ответов

HttpServerUtility.UrlEncode будет использовать HttpUtility.UrlEncode внутренне. Нет никаких конкретных различий. Причиной существования Server.UrlEncode является совместимость с классическим ASP.

132
ответ дан Mehrdad Afshari 23 November 2019 в 20:34
поделиться

Следует иметь в виду, что Вы, вероятно, не должны использовать ни один из тех методов. Microsoft Антиперекрестная Библиотека Сценариев Сайта включает замены для HttpUtility.UrlEncode и HttpUtility.HtmlEncode, которые и более совместимы стандартами, и более безопасны. В качестве награды Вы добираетесь JavaScriptEncode метод также.

27
ответ дан Edward Brey 23 November 2019 в 20:34
поделиться

Сервер. UrlEncode () там для предоставления обратной совместимости Классический ASP,

Server.UrlEncode(str);

эквивалентно:

HttpUtility.UrlEncode(str, Response.ContentEncoding);
11
ответ дан CMS 23 November 2019 в 20:34
поделиться

То же, Server.UrlEncode() вызовы HttpUtility.UrlEncode()

5
ответ дан ebram khalil 23 November 2019 в 20:34
поделиться

Раньше у меня были серьезные проблемы с этими методами, Я рекомендую вам избегать любого варианта UrlEncode , а вместо этого использовать Uri .EscapeDataString - по крайней мере, у этого есть понятное поведение.

Посмотрим ...

HttpUtility.UrlEncode(" ") == "+" //breaks ASP.NET when used in paths, non-
                                  //standard, undocumented.
Uri.EscapeUriString("a?b=e") == "a?b=e" // makes sense, but rarely what you
                                        // want, since you still need to
                                        // escape special characters yourself

Но мне больше всего нравится HttpUtility.UrlPathEncode - эта штука действительно непонятна. Он кодирует:

  • "" ==> "% 20"
  • "100% true" ==> "100 %% 20true" (хорошо, теперь ваш URL не работает)
  • "test A.aspx # anchor B "==>" test% 20A.aspx # anchor% 20B "
  • " test A.aspx? hmm # anchor B "==>" test% 20A.aspx? hmm #anchor B "( обратите внимание на разницу с предыдущей escape-последовательностью! )

В нем также есть прекрасная документация MSDN «Кодирует часть пути в строке URL-адреса для надежной передачи HTTP от веб-сервера к клиенту». - фактически не объясняя, что он делает. У вас меньше шансов выстрелить себе в ногу из Узи ...

Короче говоря, придерживайтесь Uri.EscapeDataString .

258
ответ дан 23 November 2019 в 20:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: