PDA

View Full Version : تشخیص یک رشته که با زبان لاتین نوشته شده یا فارسی



ramin149
جمعه 05 اسفند 1390, 14:58 عصر
آیا کسی از بچه ها یک تابع داره که بشه با آن یک جمله را تشخیص داد که فارسی است یا انگلیسی ؟

behrad110
جمعه 05 اسفند 1390, 23:56 عصر
فکر نمیکنم به این راحتی باشه چون کد پیج ویندوز ها با هم فرق میکنه. ممکنه رو یه ویندوز کار کنه رو یکی دیگه نه
با این حال روی یونی کد ها کار کن با این که درد سر داره اما خوب جواب میگیری مثل کد زیر یونی کد های فارسی رو بدست بیار تو شرطی مقایسه کن اگه این یونیکد ها استفاده شده بود فارسیه در غیر این صورت انگلیسی رو چک کن( حروف کوچک اعداد و حروف بزرگ تو یک کاندیشن )فقط حواست باشه تو condition بیرونی space ها رو حذف کن چون هم تو فارسی و هم تو انگلیسی وجود داره
مقدارش هم اینجوری بدست بیار
string bc="";
string s = "ابپتثجچحخدذرزژسشصضطظعغفقک گلمنوهی";
byte[] uniValues = Encoding.Unicode.GetBytes(s);
foreach (byte b in uniValues) {

bc += b.ToString()+ " ";

}
MessageBox.Show(bc.ToString());
هر جفت عدد یک کاراکتر رو نشون میده

mehrdad85
شنبه 06 اسفند 1390, 08:08 صبح
با سلام
دوست عزیز فکر میکنم این تاپیک بدردت بخوره و مشکلتو حل کنه
اگه مشکل حل نشد یا کمک نیاز داشتی خوشحال میشم بتونم کاری انجام بدم واست

اینجا (http://barnamenevis.org/showthread.php?200787-%D8%AA%D8%B4%D8%AE%DB%8C%D8%B5-%D9%85%D8%AA%D9%86-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D8%B2-%D8%A7%D9%86%DA%AF%D9%84%DB%8C%D8%B3%DB%8C)
موفق باشی

_behnam_
شنبه 06 اسفند 1390, 09:38 صبح
سلام،
بهترین گزینه و استاندارد ترین گزینه استفاده از عبارات با قاعده است


System.Text.RegularExpressions


string Str = "متن فارسی";
Regex Reg = newRegex("[ابپتثجچحخدذرزژسشصضطظعغفقک گلمنوهی\\s]+", RegexOptions.Multiline);
if (Reg.IsMatch(Str))
{



MessageBox.Show("متن فارسی ");
}
else

{
MessageBox.Show("متن غیر فارسی
");
}