دسته بندی ها
16:48 1399/12/23

رفع مشکل اعداد فارسی در Asp.net Core هنگام ورود اطلاعات

مشخصات سوال کننده :
کاربر : Programmer     امتیاز کاربر : 27     رتبه کاربر : 26
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 4141
پاسخ دهنده : saedbfd 19:46 1399/12/23

اطلاعات شما در دیتابیس به صورت انگلیسی ذخیره شده احتمالا. اعداد به صورت فارسی و انگلیسی از نظر 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("٠٩٩٠٢١٢");

//خروجی
0990212

 

در این لینک هم قبلا این سوال پرسیده شده بود و پاسخ داشت.

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

ویرایش شده در شنبه 23 اسفند 1399 ساعت 19:46:49
به این پاسخ امتیاز بدهید    0
امتیاز: 1654 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود