Các mã sau đây:kết quả WebClient.DownloadString bằng ký tự đã bị đọc sai do các vấn đề mã hóa, nhưng trình duyệt là OK
var text = (new WebClient()).DownloadString("http://export.arxiv.org/api/query?search_query=au:Freidel_L*&start=0&max_results=20"));
kết quả trong một biến text
chứa, trong số rất nhiều những thứ khác, chuỗi
"không gian $ κ $ -Minkowski, trường vô hướng, và vấn đề Lorentz bất biến"
Tuy nhiên, khi tôi truy cập URL trong Firef bò, tôi nhận được
$ κ gian $ -Minkowski, trường vô hướng, và vấn đề Lorentz bất biến
mà thực sự là chính xác. Tôi cũng đã thử
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);
nhưng điều này cũng có cùng một vấn đề.
Tôi không chắc nơi lỗi xảy ra ở đây. Là nguồn cấp dữ liệu nằm về được mã hóa UTF8 và trình duyệt đủ thông minh để tìm ra điều đó, nhưng không phải là WebClient
? Nguồn cấp dữ liệu có được mã hóa UTF8 đúng cách hay không, nhưng WebClient
không hoạt động theo một cách khác? Tôi có thể làm gì để giảm thiểu điều này?
'UTF8Encoding.Default' thực sự là' Encoding.Default', là mã hóa ANSI dựa trên cài đặt ngôn ngữ hệ điều hành. – svick