รหัสต่อไปนี้:
var text = (new WebClient()).DownloadString("http://export.arxiv.org/api/query?search_query=au:Freidel_L*&start=0&max_results=20"));
ส่งผลให้ตัวแปรtext
มีสตริงเหนือสิ่งอื่นใด
"$ κ $ -Minkowski สเปซฟิลด์สเกลาร์และปัญหาความไม่แปรเปลี่ยนของลอเรนซ์"
อย่างไรก็ตามเมื่อฉันไปที่ URL นั้นใน Firefox ฉันจะได้รับ
$ κ $ -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);
แต่สิ่งนี้ทำให้เกิดปัญหาเดียวกัน
ฉันไม่แน่ใจว่าความผิดอยู่ที่นี่ ฟีดโกหกเกี่ยวกับการเข้ารหัส UTF8 หรือไม่และเบราว์เซอร์ฉลาดพอที่จะคิดออก แต่ไม่WebClient
? ฟีดมีการเข้ารหัส UTF8 อย่างถูกต้อง แต่WebClient
ล้มเหลวด้วยวิธีอื่นหรือไม่ ฉันจะทำอย่างไรเพื่อลดปัญหานี้
UTF8Encoding.Default
เป็นจริงEncoding.Default
ซึ่งเป็นการเข้ารหัส ANSI ตามการตั้งค่าภาษา OS