PDA

View Full Version : خواندن فایل HTML فارسی با کمک webClient.DownloadString



mahdi bg
جمعه 22 دی 1396, 22:53 عصر
سلام
من می خواستم محتوی یک فایل فارسی بخونم با کمک کد زیر

var webClient = new WebClient();
webClient.Encoding = Encoding.UTF8;
string result = webClient.DownloadString(source);


ولی خروجی یک سری کاراکتر نا مشخص هستش
چکار باید بکنم؟

ممنون

danialafshari
شنبه 23 دی 1396, 01:39 صبح
با سلام
کد بالا Source صفحه رو براتون نمایش میده و من تست کردم متن های فارسی رو هم بدرستی نمایش داد

string source = @"http://barnamenevis.org/showthread.php?545501-%D8%AE%D9%88%D9%86%D8%AF%D8%A7%D9%86-%D9%81%D8%A7%DB%8C%D9%84-HTML-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A8%D8%A7-%DA%A9%D9%85%DA%A9-webClient-DownloadString";
var webClient = new WebClient();
webClient.Encoding = Encoding.UTF8;
string result = webClient.DownloadString(source);
richTextBox1.Text = result;

موفق باشید

ramtinak
شنبه 23 دی 1396, 23:12 عصر
سلام،
به این دلیل هست که کاراکتر های فارسی و بعضی چیز ها مثل & < > انکد Encode میشن و شما باید اون رو دیکد Decode کنید.
برای این کار کافیه بعد از اینکه سورس رو گرفتید این کار رو انجام بدید:

var decodedSource = System.Net.WebUtility.HtmlDecode(source);

به همین راحتی!

البته میشه از کلاس Uri هم استفاده کرد:
var decodedSource2 = Uri.UnescapeDataString(source);

من برای اینکه خیال خودم رو راحت کنم که همه چی به صورت کامل دیکد میشه از هر دو استفاده می کنم:

var decodedSource2 = Uri.UnescapeDataString(System.Net.WebUtility.HtmlD ecode(source));



موفق باشید.