کدینگ رشته ها در سی شارپ

برای استفاده از استاندارهای کدگذاری متن مانند ASCII، UTF8 و Unicode می توانیم از کلاس های مربوطه آنها استفاده کنیم. این کلاس ها در فضای نام System.Text تعریف شده اند. به طور مثال برای استفاده از استاندارد UTF8 باید شی ای از جنس کلاس UTF8Encoding بسازید:


UTF8Encoding enc = new UTF8Encoding();

حال برای اینکه یک رشته متنی را با این استاندارد وفق دهیم، می توانیم از تابع GetBytes استفاده کنیم. این تابع در ورودی خود یک رشته متنی می پذیرد و در خروجی رشته استاندارد شده را در قالب آرایه ای از بایت ها می دهد:


string str = "به نام خدا";

byte[] EncodedText = enc.GetBytes(str);

حال اگر بخواهیم ارایه ای از بایت ها را بر اساس استاندارد UTF8 به رشته متنی تبدیل کنیم، باید از تابع GetString کمک بگیریم:


string str = enc.GetString(EncodedText);

برای استفاده از استاندارد Unicode از کلاس UTF32Encoding و برای استفاده از استاندارد ASCII از کلاس ASCIIEncoding کمک می گیریم.
[divider]
تفاوت استانداردها
استاندارد ASCII ساده ترین استاندارد برای کدگذاری رشته هاست. این استاندارد برای هر کاراکتر یک بایت فضا اشغال می کند و توانایی کد کردن ۲۵۶ کاراکتر را دارد. از آنجایی که زادگاه این استاندارد آمریکا بوده است، در نتیجه کاراکترهای انگلیسی و اعداد و علائم را در خود جای می دهد.
به دلیل محدود بودن استاندارد ASCII استاندارد دیگری تحت عنوان UTF8 عرضه شد. در این استاندارد برای هر کاراکتر ۲ بایت فضا در نظر گرفته شد. در نتیجه این استاندارد توانست ۶۵۵۳۶ کاراکتر را در خود جای دهد. کاراکترهای اکثر زبان های دنیا در این استاندارد قرار گرفته اند و علائم ریاضی، منطقی و برخی از نشانه های معروف نیز در این استاندارد وجود دارند.
با وجود اینکه استاندارد UTF8 بیشتر مشکلات و محدودیت های ASCII را برطرف نمود، باز هم به دلیل اینکه برای تمام زبان های دنیا قابل استفاده نبود، استاندارد دیگری به نام Unicode عرضه شد. این استاندارد برای هر کاراکتر ۴ بایت فضا تخصیص داد. با این کار بیش از ۴ میلیارد فضا برای قرار دادن تمامی کاراکترها و علائم مختلف در دسترس قرار گرفت. در نتیجه این استاندارد نسبت به دو نوع قبلی کامل است اما از نظر میزان حافظه مصرفی، فضای بیشتری را اشغال می کند.

[divider]

نمونه پروژه

برای درک بهتر مطلب و بررسی نحوه کدگذاری رشته ها در سی شارپ پروژه ای ساده و کم حجم آماده کرده ایم. در این پروژه استانداردهای ASCII، UTF8 و Unicode مورد استفاده قرار گرفته اند. نمونه خروجی این پروژه را می توانید در تصاویر زیر مشاهده کنید:

 123

همانطور که در تصاویر بالا مشاهده می کنید، مقدار فضای مصرفی در هر سه استاندارد نشان داده شده است. برای دریافت این نمونه پروژه می توانید از لینک زیر استفاده کنید.

رمز فایل فشرده: www.myempire.ir

 [button color=”red” size=”small” link=”https://myempire.ir/wp-content/uploads/Encoding.zip” target=”blank” ]دریافت نمونه پروژه[/button]

موفق و پیروز باشید…

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *