PDA

View Full Version : سوال: مشکل فارسی در خواندن از فایل متنی



damuon
پنج شنبه 04 اسفند 1390, 03:26 صبح
با سلام به دوستان و اساتید محترم
من یه سری متن فارسی رو از یه فایل تکست میخونم ولی توی برنامه اونها رو به صورت کاراکتر های نا مفهوم نمایش میده این مشکل رو چطور باید حل کنم ؟؟
لطفا کمک کنید
ممنون

damuon
پنج شنبه 04 اسفند 1390, 13:01 عصر
دوستان لطفا کمک کنید
فکر نمیکنم بی جواب باشه
ممنون

mrbm_2007
پنج شنبه 04 اسفند 1390, 13:22 عصر
از چی برای خوندن فایل استفاده کردی؟ (BinaryReader?)
چجوری متن رو نشون میدی؟
میتونی کدتو بذاری؟

damuon
پنج شنبه 04 اسفند 1390, 13:44 عصر
من از این کد استفاده می کنم
strAddress = File.ReadAllText(@"c:\a.txt");
متن رو هم توی لیبل نشون میدم
البته متن رو باید توی برنامه ویرایش کنم به این صورت که کاراکتر های اضافی باید حذف بشن مثل $%^&@و...
ممنون

ma.rad
پنج شنبه 04 اسفند 1390, 13:59 عصر
مشکل در unicode فایل متنی تون هست.باید ut8 باشه یا تبدیلش کنی
قبلا به همین سوال جواب دادم جستجو کن

notepad
پنج شنبه 04 اسفند 1390, 15:14 عصر
سلام به همگی

از Encoding.unicode هم میتونی استفاده کنی:لبخندساده:

damuon
پنج شنبه 04 اسفند 1390, 17:22 عصر
سلام
آقا من مشکلم حل نشد
سرچ هم کردم مطالبی هم درباره Encoding.unicode پیدا کردم ولی بازم نشد
متن های فارسی رو به صورت مربع مربع نشون میده
ممکنه یه کد مثالی برای تبدیل به utf8 بدین
ممنون

Hybrid
پنج شنبه 04 اسفند 1390, 17:32 عصر
سلام ،

1 ) فایل متنیتون رو باز کنین.

2 ) در منوی فایل روی Save as... کلیک کنین .

3 ) در پایین پنجره ی Save as ، کامبو باکس رو به روی Encoding رو باز کن به UTF-8 تغییرش بده.

بعد این رو جایگزین فایل متنی قبلیتون بکنین.برنامتون رو دوباره دیباگ کنین ببین درست میشه.

damuon
پنج شنبه 04 اسفند 1390, 17:44 عصر
بله ممنونم با این کار درست میشه
ولی مشکل من اینه که این کار رو باید با کد نویسی انجام بدم
این برنامه کاربر مبتدی زیاد داره و از طرفی امکان این که به همه بگم که این مراحل رو برن نیست
احتمالا با کد نویسی هم باید بشه این کار رو کرد
ممنون

Hybrid
پنج شنبه 04 اسفند 1390, 18:48 عصر
یک سوال : خودتون داخل برنامه این فایل رو ایجاد میکنین؟ میتونین از همون اول بیاین فرمتش رو تغییر به utf8 بدین.

damuon
پنج شنبه 04 اسفند 1390, 20:47 عصر
سلام
بله با فرض این که من خودم این فایل رو ایجاد کنم باید از چه کدی برای ایجاد این فایل با استاندارد utf8 استفاده کنم ؟؟
ممنون

Hybrid
پنج شنبه 04 اسفند 1390, 21:48 عصر
سلام ، به این تکه کد توجه کن ، فایلی رو با UTF-8 ،Encoding براتون ایجاد میکنه :


FileStream FStream = new FileStream("c:\\sia.txt", FileMode.Create, FileAccess.Write);
StreamWriter fsWriter = new StreamWriter(FStream, Encoding.UTF8);

موفق باشید./

notepad
یک شنبه 07 اسفند 1390, 10:23 صبح
سلامی چو بوی خوش آشنایی...


System.IO.File.AppendAllText(@"f:\hh.txt", "Your Text is here", Encoding.Unicode);

System.IO.File.WriteAllText(@"f:\hh.txt", "Your Text is here", Encoding.UTF8);

از این کدها هم میتونی استفاده کنی
File.AppendAllText به فایل Text قبلی اضافه می کنه و
File.WriteAllText فایل text جدیدی میسازد.
اگر هم فایل موجود باشد.فایل قبلی را پاک می کنه و محتوای جدید رو توش می ریزه
:لبخندساده: