PDA

View Full Version : نمایش کاراکترهای فارسی در سی شارپ و unicode



CodeforLife
پنج شنبه 29 بهمن 1394, 23:51 عصر
سلام طوستان گرامی.
من اطلاعات فارسی رو از جایی در برنامم می خونم و می خوام که در فرم اجرایی برنامم نشونش بدم .
باید به unicode تبدیل بشه ، ولی چه جوری ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
ممنونم

Felony
جمعه 30 بهمن 1394, 02:49 صبح
https://msdn.microsoft.com/library/kdcak6ye%28v=vs.100%29.aspx

CodeforLife
جمعه 30 بهمن 1394, 04:01 صبح
سلام .از شما ممنونم
ولی کاشکی یه مقدار توضیح می دادید بهم !

CodeforLife
جمعه 30 بهمن 1394, 04:18 صبح
این کد رو به برنامم اضافه کردم ولی همه رشته های فارسی رو به صورت انگلیسی نماش میده !
دلیلش چیه ؟
ممنونم


string html = new WebClient().DownloadString("https://www.tabnak.ir/");
FileStream fs = new FileStream(@"E:\aa.txt", FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
string unicodeString = html;
Encoding ascii = Encoding.ASCII;
Encoding unicode = Encoding.Unicode;
byte[] unicodeBytes = unicode.GetBytes(unicodeString);
byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes);
char[] asciiChars = new char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);
string asciiString = new string(asciiChars);
sw.Write(asciiString );

CodeforLife
جمعه 30 بهمن 1394, 09:01 صبح
دوستان خواهش میکنم بهم بگین که چه طور این اطلاعات رو فارسی کنم ؟

fool66
جمعه 30 بهمن 1394, 09:16 صبح
سلام

byte[] unicodeBytes = Encoding.UTF8.GetBytes(unicodeString);
String str = Encoding.UTF8.GetString(unicodeBytes);

اینطور استفاده کن

CodeforLife
جمعه 30 بهمن 1394, 10:09 صبح
سلام این کد رو نوشتم .
ولی نشد !
چه کار کنم دوستان ؟؟؟؟؟؟؟؟؟؟؟؟/


string html = new WebClient().DownloadString("https://www.tabnak.ir/");
FileStream fs = new FileStream(@"E:\aa.txt", FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
string unicodeString = html;
Encoding ascii = Encoding.ASCII;
Encoding unicode = Encoding.Unicode;
byte[] unicodeBytes = Encoding.UTF8.GetBytes(unicodeString);
byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes);
char[] asciiChars = new char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);
string asciiString = Encoding.UTF8.GetString(unicodeBytes );
sw.Write(asciiString );

139171

fool66
جمعه 30 بهمن 1394, 10:48 صبح
شما مشکلتون توی StreamWriter هست
اینطوری بنویس

StreamWriter writer = new StreamWriter(fs, Encoding.UTF8);

CodeforLife
جمعه 30 بهمن 1394, 11:23 صبح
ممنونم .ولی باز نشد!

CodeforLife
جمعه 30 بهمن 1394, 11:26 صبح
میشه شما انجام بدین برام بفرستین !
خواهش میکنم ! خیلی لازمش دارم !
ممنونم دوست عزیز

fool66
جمعه 30 بهمن 1394, 16:37 عصر
http://www.codeproject.com/Articles/885262/Reading-and-writing-Unicode-data-in-NET

Mahmoud.Afrad
جمعه 30 بهمن 1394, 18:46 عصر
WebClient webClient = new WebClient();
string html = webClient.DownloadString("https://www.tabnak.ir/");
byte[] b = webClient.Encoding.GetBytes(html);
string str = Encoding.UTF8.GetString(b);
یا

WebClient webClient = new WebClient();
webClient.Encoding = Encoding.UTF8;
string str = webClient.DownloadString("https://www.tabnak.ir/");