title: Tag helper field is encoded wrong
body: <p>Consider the following tag helper (non-relevant parts hidden)</p>
  
  <pre><code>[HtmlTargetElement("*", Attributes = "optional-field-checkbox")]
  public class OptionalFieldCheckbox : TagHelper
  {
      // [...]
  
      [HtmlAttributeName("checkbox-label")]
      public string CheckboxLabel { get; set; }
  
      public override Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
      {
          // [...]
      }
  }
  </code></pre>
  
  <p>with a call to the above tag helper as follows</p>
  
  <pre><code>&lt;div optional-field-checkbox checkbox-label="L'évènement se déroule sur plusieurs jour ?"&gt;
      &lt;!-- [...] --&gt;
  &lt;/div&gt;
  </code></pre>
  
  <p>When I retrieve the value from the <code>CheckboxLabel</code> property in the <code>ProcessAsync</code> method I get the following, wrongly encoded, string:</p>
  
  <blockquote>
    <p>L'�v�nement se d�roule-t-il sur plusieurs jour ?</p>
  </blockquote>
  
  <p>The expected value would be</p>
  
  <blockquote>
    <p>L'évènement se déroule-t-il sur plusieurs jour ?</p>
  </blockquote>
  
  <p>I have:</p>
  
  <ul>
  <li>Googled this problem and it seems this is due to double-encoding of the value by the TagHelper, but I couldn't find any solution</li>
  <li>Tried bypassing the encoding by using an <code>HtmlString</code> as the <code>CheckboxLabel</code>'s property's type, but it didn't change anything</li>
  <li>Tried using <code>WebUtility.HtmlDecode</code> and <code>WebUtility.UrlDecode</code> to get the original string back, to no avail</li>
  </ul>
  
  <p>How can I get the raw string in the <code>ProcessAsync</code> method and, if it's impossible, how can I encode the string back to its original form ?</p>