دسته بندی ها
17:02 1399/07/13

تبدیل اعداد فارسی به انگلیسی در Asp.net و سی شارپ

مشخصات سوال کننده :
کاربر : hamid_b     امتیاز کاربر : 510     رتبه کاربر : 4
دسته بندی : سی شارپ Asp.net Core Asp.net Mvc Asp.net Web Form

به این سوال امتیاز بدهید    1
تعداد بازدید این سوال : 6743
پاسخ دهنده : saedbfd 21:48 1399/07/13

تبدیل اعداد فارسی به انگلیسی در Asp.net و سی شارپ

یکی از مشکلاتی که در خیلی از موارد پیش میاد فارسی بودن تنظیمات کیبورد کاربران می باشد.این موضوع باعث میشه اعداد وارد شده با Unicode فارسی تایپ بشن و به همین صورت در دیتابیس ذخیره بشن که باعث بروز مشکلاتی میشه. مثلا در جستجو ها ممکنه نتیجه صحیح رو نداشته باشه یا خیلی از وب سرویس ها اعداد به صورت فارسی رو قبول نمیکنن. برای رفع این مشکل میتونید از کلاس زیر استفاده کنید.

 

public static class ConvertArabicNumberToEnglish
{
   public static string toEnglishNumber(string input)
   {
       string EnglishNumbers = "";
       for (int i = 0; i < input.Length; i++)
          {
              if (Char.IsDigit(input[i]))
                {
                    EnglishNumbers += char.GetNumericValue(input, i);
                }
                else
                {
                    EnglishNumbers += input[i].ToString();
                }
           }
        return EnglishNumbers;
   }
}

 

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

 

ConvertArabicNumberToEnglish.toEnglishNumber("٠٩٩٠٢١٢");

 

تبدیل اعداد انگلیسی به فارسی در Asp.net و سی شارپ

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

public static string ConvertEnToFaNumber(string englishNumber)
   {
   string persianNumber = "";
   foreach (char ch in englishNumber)
   {
      persianNumber += (char)(1776 + char.GetNumericValue(ch));
   }
   return persianNumber;
}

 

ویرایش شده در جمعه 24 تیر 1401 ساعت 01:41:23
به این پاسخ امتیاز بدهید    2
امتیاز: 1654 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود