<p>It's not lying. You should set the webclient's encoding first before calling DownloadString.</p>

<pre><code>using(WebClient webClient = new WebClient())
{
webClient.Encoding = Encoding.UTF8;
string s = webClient.DownloadString("http://export.arxiv.org/api/query?search_query=au:Freidel_L*&amp;start=0&amp;max_results=20");
}
</code></pre>

<p>As for why your alternative isn't working, it's because the usage is incorrect. Its should be:</p>

<pre><code>System.Text.Encoding.UTF8.GetString()
</code></pre>
WebClient.DownloadString results in mangled characters due to encoding issues, but the browser is OK
<p>The following code:</p>

<pre><code>var text = (new WebClient()).DownloadString("http://export.arxiv.org/api/query?search_query=au:Freidel_L*&amp;start=0&amp;max_results=20"));
</code></pre>

<p>results in a variable <code>text</code> that contains, among many other things, the string</p>

<blockquote>
  <p>"$Îº$-Minkowski space, scalar field, and the issue of Lorentz invariance"</p>
</blockquote>

<p>However, when I visit that URL in Firefox, I get</p>

<blockquote>
  <p>$κ$-Minkowski space, scalar field, and the issue of Lorentz invariance</p>
</blockquote>

<p>which is actually correct. I also tried</p>

<pre><code>var data = (new WebClient()).DownloadData("http://export.arxiv.org/api/query?search_query=au:Freidel_L*&amp;start=0&amp;max_results=20");
var text = System.Text.UTF8Encoding.Default.GetString(data);
</code></pre>

<p>but this gave the same problem.</p>

<p>I'm not sure where the fault lies here. Is the feed lying about being UTF8-encoded, and the browser is smart enough to figure that out, but not <code>WebClient</code>? Is the feed properly UTF8-encoded, but <code>WebClient</code> is failing in some other way? What can I do to mitigate this?</p>