• 0
javadj

تغییر انکدینگ تکست

سوال

دوستان من دارم یه برنامه شبیه نوت پد درست میکنم ولی نمیدونم که چی کار کنم که بشه کاربر انکدینگ رو تغییر بده میشه کمکم کنید

 

ممنون

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

2 پاسخ به این سوال تا کنون داده شده است

  • 0

دوستان من دارم یه برنامه شبیه نوت پد درست میکنم ولی نمیدونم که چی کار کنم که بشه کاربر انکدینگ رو تغییر بده میشه کمکم کنید

 

ممنون

درود

اگر اشتباه نکنم

نمیشه این کار کرد

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر


  • 0

نه این کار کاملا امکان پذیره ، اول از همه مشخص کنید برای چه نسخه از چه سیستم عاملی دارید برنامه رو می نویسید؟! در ویندوزفون تنها سری محدودی از اینکودینگ ها وجود داره ، البته با توجه به یه برنامه میتونید سورس اینکودینگ ها رو به پروژتون اضافه کنید.

 

راه های مختلفی برای تغییر اینکودینگ وجود داره که همگی وابسته به کلاس Encoding هستند.

 

در مثال زیر من اینکودینگ یه استرینگ تغییر میدم:

   //دریافت استرینگ با اینکودینگ مورد نظر
        string ChangeEncoding(string currentString,string currentEncodingName)
        {
            //دریافت اینکودینگ فعلی
            Encoding currentEncoding = Encoding.GetEncoding(currentEncodingName);

            //دریافت بایت های متن فعلی
            byte[] bytes = currentEncoding.GetBytes(currentString);

            //اینکودینگ مورد نظر
            Encoding desiredEncoding = Encoding.UTF8;

            //دریافت استرینگ با توجه به اینکودینگ مورد نظر
            string outPut = desiredEncoding.GetString(bytes, 0, bytes.Length);

            return outPut;
        } 

در این مثال متن یک فایل رو با توجه با اینکودینگ مورد نظر دریافت می کنیم

 async Task<string> ChangeEncodingOfFile(StorageFile file)
        {
            //دریافت استریم فایل
            Stream stream = await file.OpenStreamForReadAsync();

            //دریافت تعداد بایت های فایل
            byte[] bytes = new byte[stream.Length];

            //خواندن بایت های فایل تا انتها
            stream.Read(bytes, 0, (int)stream.Length);
            stream.Dispose();

            // اینکودینگ مورد نظر
            Encoding encode = GetSelectedEncoding();

            //دریافت استرینگ با توحه به اینکودینگ مورد نظر
            string text = encode.GetString(bytes, 0, bytes.Length);

            return text;
        }
پسند شده توسط 2 کاربر

به اشتراک گذاری این ارسال


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