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

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

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

به این سوال امتیاز بدهید    1
تعداد بازدید این سوال : 6802
هوش مصنوعی

پاسخ هوش مصنوعی

برای تبدیل اعداد فارسی به انگلیسی در ASP.NET و C#، شما می توانید از کد زیر استفاده کنید:


public static string ConvertPersianDigitsToEnglish(string input)
{
    return input
        .Replace('0', '0')
        .Replace('1', '1')
        .Replace('2', '2')
        .Replace('3', '3')
        .Replace('4', '4')
        .Replace('5', '5')
        .Replace('6', '6')
        .Replace('7', '7')
        .Replace('8', '8')
        .Replace('9', '9');
}

شما می توانید این تابع را در جایی که کاربر ورودی خود را وارد می کند، فراخوانی کنید. به عنوان مثال:


string userInput = txtPhoneNumber.Text; // فرض کنید این ورودی شماره تلفن کاربر است
string englishNumber = ConvertPersianDigitsToEnglish(userInput);
// حالا می توانید englishNumber را در دیتابیس ذخیره کنید

با این روش، همه اعداد فارسی وارد شده توسط کاربر به اعداد انگلیسی تبدیل می شوند و می توانید به راحتی آنها را در دیتابیس ذخیره کنید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : 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
امتیاز: 1664 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود