title: Requests to controllers with umlauts (special characters) doesn't work with body
body: <p>Given the following controller (created with Visual Studio 15.8.2 → WebApi template):</p>
  
  <pre class="lang-cs prettyprint-override"><code>[Route("api/[controller]")]
  [ApiController]
  public class StädteController : ControllerBase
  {
      private static readonly List&lt;string&gt; Städte = new List&lt;string&gt;{"Berlin","Hamburg","München","Köln","Frankfurt","Stuttgart","Düsseldorf","Dortmund","Essen"};
  
      // GET api/Städte
      [HttpGet]
      public ActionResult&lt;IEnumerable&lt;string&gt;&gt; Get()
      {
          return Städte;
      }
  
      // Post api/Städte/Leipzig
      [HttpPost("{id}")]
      public void Post(string id)
      {
          if (!Städte.Contains(id))
              Städte.Add(id);
      }
  
      // Post api/Städte
      [HttpPost]
      public void Post([FromBody] IEnumerable&lt;string&gt; städte)
      {
          Städte.AddRange(städte?.Except(Städte) ?? Enumerable.Empty&lt;string&gt;());
      }
  }
  </code></pre>
  
  <p>Any request without payload will work (OK 200 is returned):</p>
  
  <ul>
  <li><code>GET https://localhost:44301/api/Städte</code></li>
  <li><code>GET https://localhost:44301/api/St%C3%A4dte</code></li>
  <li><code>POST https://localhost:44301/api/Städte/Leipzig</code></li>
  <li><code>POST https://localhost:44301/api/St%C3%A4dte/Leipzig</code></li>
  </ul>
  
  <p>Requests with a body <strong>don't work</strong> (NOT FOUND 404 is returned):</p>
  
  <ul>
  <li><p><code>POST https://localhost:44301/api/Städte</code>
  </p>
  
  <pre><code>["Dresden", "Chemnitz"]
  </code></pre></li>
  <li><p><code>POST https://localhost:44301/api/St%C3%A4dte</code>
  </p>
  
  <pre><code>["Dresden", "Chemnitz"]
  </code></pre></li>
  </ul>
  
  <p>Using <code>PUT</code> leads to an equivalent result! Rename <code>ä</code> to <code>ae</code> will work but I don't like to!</p>
  
  <p>Does anybody know why routing breaks if a body is expected from controller's action? What's the best fix to offer URIs with umlauts to the customer?</p>
  
  <hr>
  
  <p>ASP.NET Core Web Server Log:</p>
  
  <pre><code>info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
        Request starting HTTP/1.1 POST http://localhost:44301/api/St��dte application/json 23
  trce: Microsoft.AspNetCore.HostFiltering.HostFilteringMiddleware[0]
        All hosts are allowed.
  dbug: Microsoft.AspNetCore.Builder.RouterMiddleware[1]
        Request did not match any routes.
  dbug: Microsoft.AspNetCore.Server.Kestrel[9]
        Connection id "0HLGJ46FC5IM0" completed keep alive response.
  info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
        Request finished in 11.5071ms 404 
  dbug: Microsoft.AspNetCore.Server.Kestrel[25]
        Connection id "0HLGJ46FC5IM0", Request id "0HLGJ46FC5IM0:00000002": started reading request body.
  dbug: Microsoft.AspNetCore.Server.Kestrel[26]
        Connection id "0HLGJ46FC5IM0", Request id "0HLGJ46FC5IM0:00000002": done reading request body.
  info: Microsoft.AspNetCore.Server.Kestrel[32]
        Connection id "0HLGJ46FC5IM0", Request id "0HLGJ46FC5IM0:00000002": the application completed without reading the entire request body.
  </code></pre>
  
  <hr>
  
  <p>UPDATE 27-06-2019:</p>
  
  <p>ASP.NET Core 2.2:</p>
  
  <ul>
  <li>POST works now</li>
  <li>GET doesn't :-(</li>
  </ul>
  
  <p><a href="https://github.com/aspnet/AspNetCore/issues/11640" rel="nofollow noreferrer">https://github.com/aspnet/AspNetCore/issues/11640</a></p>