Dom*_*nic 81 .net unicode webclient utf-8
以下代码:
var text = (new WebClient()).DownloadString("http://export.arxiv.org/api/query?search_query=au:Freidel_L*&start=0&max_results=20"));
Run Code Online (Sandbox Code Playgroud)
导致变量text包含字符串等许多内容
"$κ$ -Minkowski空间,标量场和洛伦兹不变性问题"
但是,当我在Firefox中访问该URL时,我得到了
$κ$ -Minkowski空间,标量场和洛伦兹不变性问题
这实际上是正确的.我也试过了
var data = (new WebClient()).DownloadData("http://export.arxiv.org/api/query?search_query=au:Freidel_L*&start=0&max_results=20");
var text = System.Text.UTF8Encoding.Default.GetString(data);
Run Code Online (Sandbox Code Playgroud)
但这给了同样的问题.
我不确定这里的错误在哪里.Feed是否是UTF8编码的,浏览器足够聪明,可以解决这个问题,但不是WebClient吗?Feed是否正确UTF8编码,但是WebClient以其他方式失败了?我该怎么做才能缓解这种情况?
Los*_*ter 193
这不是谎言.您应该在调用DownloadString之前先设置webclient的编码.
using(WebClient webClient = new WebClient())
{
webClient.Encoding = Encoding.UTF8;
string s = webClient.DownloadString("http://export.arxiv.org/api/query?search_query=au:Freidel_L*&start=0&max_results=20");
}
Run Code Online (Sandbox Code Playgroud)
至于为什么你的替代品不起作用,这是因为使用不正确.它应该是:
System.Text.Encoding.UTF8.GetString()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36445 次 |
| 最近记录: |