Как правильно кодировать ссылку mailto?

я генерирую некоторый HTML, и я хочу создать XSS-и database-content-safe mailto ссылка. Как правильно использовать кодировку? Как это?

myLiteral.Text = string.Format(
  "mailto:{0}?Content-Type=text/html&Subject={1}&body={2}", 
  HttpUtility.UrlEncode(email_address),
  HttpUtility.UrlEncode(subject),
  HttpUtility.UrlEncode(body_message));

должен ли я использовать UrlEncode здесь? HtmlEncode? Тогда сделай то,что сделал я!--4--> в полном объеме? Я пишу HTML URL-адрес, поэтому я немного неясен...

@Quentin, это то, что вы описываете? (Изменено &s до & так как я собираюсь HtmlEncode...)

myLiteral.Text = 
  HttpUtility.HtmlEncode(HttpUtility.UrlEncode(
    string.Format(
      "mailto:{0}?Content-Type=text/html&Subject={1}&body={2}", 
      email_address, subject, body_message)));

1 ответов


вы помещаете некоторый контент в URL-адрес, а затем представляете этот URL-адрес в HTML. Поэтому URLEncode затем HTMLEncode, что вы получаете от URLEncode.