PDA

View Full Version : سوال: نحوه تشخيص زبان متن در textbox



saied_genius
سه شنبه 12 آبان 1388, 14:01 عصر
با سلام و خسته نباشيد خدمت تمامي اساتيد.

مي خواستم ببينم چطوري ميشه متن ورودي را تشخيص داد که به چه زباني است.

مثلاً براي استفاده از وب سرويس هاي ارسال sms براي تشخيص متن فارسي و متن انگليسي جهت محاسبه قيمت هرکدام.

با تشکر

Reza_Yarahmadi
سه شنبه 12 آبان 1388, 16:18 عصر
در مورد زبان یک متن نمیشه به راحتی صحبت کرد چون هر کاراکتر جدا از کاراکتر دیگه است. ولی اگه واسه محاسبه قیمت اس ام اس میخوای تا جایی که میدونم سیستم مخابرات برای محاسبه به این صورته که فقط کاراکتر اول رو چک میکنه که فارسی یا انگلیسیه ، بعد طبق تعداد کارکترها قیمت رو حساب میکنه (چه سیستم پیشرفته ای!!)

saied_genius
سه شنبه 12 آبان 1388, 18:05 عصر
در مورد مخابرات مطمئن هستيد که فقط کاراکتر اول را چک مي کنند؟

يکي ديگه هم اين که چطور ميشه کاراکتر اول را تشخيص داد؟

با تشکر

alireza_tavakol
سه شنبه 12 آبان 1388, 18:31 عصر
سیستم مخابرات برای محاسبه به این صورته که فقط کاراکتر اول رو چک میکنه که فارسی یا انگلیسیه ، بعد طبق تعداد کارکترها قیمت رو حساب میکنه

در مورد مخابرات مطمئن هستيد که فقط کاراکتر اول را چک مي کنند؟
من فکر نمی کنم سیستم چک کردن ارسال SMS در مخابرات به این شکل باشه
مخابرات به حداکثر تعداد کاراکتر های موجود در هر بسته ارسالی نگاه میکنه ، به عبارت دیگه وقتی شما فارسی تایپ میکنی از سیستم UTF-8 استفاده میکنی و هر کاراکتر 2 بایت فضا اشغال میکنه واسه همین حداکثر تعداد کارکتری که می تونی تایپ کنی برابر است با 70 تا است و قیمت ارزونتر حساب میشه ولی وقتی داری انگلیسی تایپ میکنی شما می تونی 160 کاراکتر تایپ کنی و در قالب یک SMS ارسال کنی


يکي ديگه هم اين که چطور ميشه کاراکتر اول را تشخيص داد؟
شما مقدار عددی کاراکتر اول را به دست بیار و در باز عددی کاراکتر های فارسی بررسی کن مشخص میشه که فارسی تایپ شده یا لاتین

saied_genius
سه شنبه 12 آبان 1388, 18:36 عصر
خوب من يک کاراکتر ارسال مي کنم .

مخابرات از کجا مي فهمه فارسي است يا لاتين؟

ثانياً ممکن است من از utf-8 براي انگليسي هم استفاده کنم.

"روش تشخيص مخابرات چيست؟"


شما مقدار عددی کاراکتر اول را به دست بیار و در باز عددی کاراکتر های فارسی بررسی کن مشخص میشه که فارسی تایپ شده یا لاتین

اگر ممکنه يک مثال بزنيد.

با تشکر.

alireza_tavakol
سه شنبه 12 آبان 1388, 18:44 عصر
روش تشخيص مخابرات چيست؟
البته این سوال ربطی به برنامه نویسی C#‎‎ نداره (امید وارم مدیران بخش پست رو حذف نکنند)


ثانياً ممکن است من از utf-8 براي انگليسي هم استفاده کنم.
در موقع ارسال SMS شما نمی تونی تعیین کنی از چه encoding استفاده کنی ( گوشی شما همیشه بهترین حالت رو در نظر میگیره یعنی وقتی انگلیسی تایپ میکنی لازم نیست از utf-8 استفاده بشه پس برای جلوگیری از افزایش حجم داده ارسالی گوشی شما ترجیح میده از ASCI استفاده کنه ولی شما می تونی این کار رو تجربی امتحان کنی یک فایل توی notepad درست کنی و شامل 80 کاراکتر انگلیسی باشه و بعد با encoding UTF-8 ذخیره کن و به گوشیت منتقل کن و در نهایت اون فایل رو ارسال کن خواهی دید که 2 تا SMS ارسال میشه!

saied_genius
سه شنبه 12 آبان 1388, 18:50 عصر
ببينيد ،

من نمي خواهم با گوشي چيزي را ارسال کنم.

قرار است از محيط برنامه (که #C) است متن ارسال شود.

براي نوشتن چنين حالتي بايد معلوم شود که مخابرات چگونه تشخيص مي دهد. (نحوه تشخيص بايد از محيط برنامه باشد ، پس بازهم به برنامه نويسي بر ميگردد و خارج از بحث نيست و دليلي براي حذف پست وجود ندارد !)

حداقل يک مثال که يک کاراکتر را تشخيص دهد که از چه نوعي است.

با تشکر

alireza_tavakol
سه شنبه 12 آبان 1388, 19:25 عصر
شما با کد زیر می تونی کاراکتر اول رو به دست بیاری

char c = textBox1.Text[0];
بعد مقداری که در C ذخیره شده را با مقداری عددی زیر مقایسه کن اگه برابر بود بدون که فارسی وارد شده
1632
1633
1634
1635
1636
1781
1638
1639
1640
1641
1570
1575
1576
1662
1578
1579
1580
1670
1581
1582
1583
1584 مثلا" حرف ذ
1585
1586 مثلا" حرف ز
1688
1587
1588 مثلا" حرف ش
1589
1590
1591
1592
1593
1594
1601
1602
1711
1705
1604
1605
1606
1608
1607
1740
1574
این لیست مقدار عددی کاراکتر های فارسی است

Reza_Yarahmadi
سه شنبه 12 آبان 1388, 22:13 عصر
من فکر نمی کنم سیستم چک کردن ارسال SMS در مخابرات به این شکل باشه
با عرض پوزش به خاطر مطلب قبلی یه مقدار جستجو کردم و جواب این سؤال رو که مخابرات چطور تشخیص میده رو پیدا کردم (قبلا یه جا خونده بودم که کاراکتر اول رو چک میکنه و ...). همونطور که دوستمون گفتن پیش فرض گوشی کدینگ Ascii است ولی اگه حتی یه حرف غیر انگلیسی توی متن باشه کدینگ رو کلا تغییر میده (گفته شده بود Unicode). مخابرات هم بر حسب کدینگ هزینه رو حساب میکنه.(یه گوشی پیدا کردم و اینو تست کردم!)
شما هم واسه محاسبه هزینه کافیه تک تک کاراکترها رو چک کنید اگه یک حرف فارسی وجود داشت بر حسب اس ام اس فارسی حساب کنید و ...

saied_genius
سه شنبه 12 آبان 1388, 23:53 عصر
ممنون از پاسختون.

فکر مي کنم جوابتان کاملاً قانع کننده است.

با تشکر

موفق باشيد.