# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > C#‎‎ >  کد اسکی حروف فارسی

## shima2006

سلام
من چند تا تکست باکس دارم که می خوام توی رویداد Key press اونها تعیین کنم که فقط کاربر حروف فارسی رو بتونه وارد کنه ولی *کدهای حروف فارسی چیه نمی دونم*.

مثلا اگه می خواستم اجازه ورود حروف انگلیسی رو بدم میگفتم اگه بین 65 تا 97 بود اجازه تایپ بده ولی برای حروف فارسی نمی دونم باید چه شرطی بذارم

----------


## tdkhakpur

سلام
خوب شما صفحه کلید را به فارسی سویچ کنید بعد یک به یک به یک کاراکترها را داخل یک بافر ذخیره و بعد از این کد ها استفاده کنید .
ولی نباید کدپیج شما تغییر کند

----------


## alireza_tavakol

ببین این چند خط کد من به دردت میخوره

توی این برنامه یه جعبه متن هست که شما چه زبان صفحه کلید رو تغییر بدهی چه تغییر ندهی فارسی دریافت میکنه

----------


## hozouri

دوست عزیز می تونی کاراکتر ها رو توی یه متغیر char بریزی و کد اسکی اونا رو بگیری

----------


## shima2006

اقای علیرضا برنامتونو اجرا کردم خیلی خوب بود، حتما ازش استفاده می کنم
از بقیه دوستان هم متشکرم
راستی یک سوال دیگه راجع به فارسی 
من وقتی *اطلاعات  فارسی* رو از سی شارپ به دیتابیس می فرستم ، تویه دیتابیس به جایه حروف فارسی علامت سوال میشینه ، باید چی کار کنم؟

----------


## sara62

این برنامه را  هم امتحان کن 
توی این برنامه ساده زبان صفحه کلید با اجرا فارسی میشه و با کلید های سویچی (alt & shift) هم نمیشه اونو انگلیسی کرد(غیر فعال میشه)
در ضمن برای مشکل دیتابیست فکر میکنم از نوع ()nvarchar استفاده کنی درست شه(توی sql)

----------


## alireza_tavakol

البته من یه چیزی بگم عنوان تاپیک از نظر فنی کاملا غلطه چون حروف فارسی کد اسکی ندارند

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

----------


## alireza_tavakol

> اقای علیرضا برنامتونو اجرا کردم خیلی خوب بود، حتما ازش استفاده می کنم
> از بقیه دوستان هم متشکرم
> راستی یک سوال دیگه راجع به فارسی 
> من وقتی *اطلاعات  فارسی* رو از سی شارپ به دیتابیس می فرستم ، تویه دیتابیس به جایه حروف فارسی علامت سوال میشینه ، باید چی کار کنم؟


در هر تاپیک فقط یک سوال بپرس :چشمک:

----------


## shima2006

آقای توکل بابت عنوان تاپیک و همچنین مطرح کردن دو سوال در یک تاپیک متاسفام 
دیگه تکرار نمیشه :چشمک: 
راستی خانم سارا nvarchar رو امتحان کردم ولی درست نشد

----------


## hozouri

دوست عزیز در موقع ساخت Query قبل از ' از کاراکتر N استفاده کن :


insert into table(field) values (N'تست')

----------


## shima2006

من می خوام به جای کلمه* تست* بنویسم text1.text که محتویات این تکست باکس فارسی تایپ شده
راه حل شما در این مورد هم درست جواب میده؟؟؟

----------


## hozouri

ببینید فرقی نمیکنه که شما چی رو می خواهید در بانک ذخیره کنید چون یه تکس باکس در حقیقت نوع تکست از نوع رشته است.

برای جستجو هم بهتره از N استفاده کنید یعنی قبل از ' کاراکتر N رو درج نمایید که جواب درست تری به شما بر می گردونه. و مشکلات ی , پ در اون دیده نمی شه ...

----------


## samirdev

فکر کنم فلسفه ی Ascii Ansi و UniCode را زیر سوال بردید

----------


## shima2006

آقای حضوری از راهنماییتون بسیار بسیار سپاسگذارم
به نظرم کاراکتر N معجزه میکنه :چشمک: دلیل علمیشو نفهمیدم ولی درست شد

----------


## tdkhakpur

> ببین این چند خط کد من به دردت میخوره
> 
> توی این برنامه یه جعبه متن هست که شما چه زبان صفحه کلید رو تغییر بدهی چه تغییر ندهی فارسی دریافت میکنه


سلام
آنچه شما برای برنامه تان استفاده کردید از لحاظ اینکه به فارسی ساز نیاز نداشته باشد کامل نیست و همیشه وابسته به ویندوز خواهد بود.

----------


## alireza_tavakol

> سلام
> آنچه شما برای برنامه تان استفاده کردید از لحاظ اینکه به فارسی ساز نیاز نداشته باشد کامل نیست و همیشه وابسته به ویندوز خواهد بود.


برنامه ای که من نوشته بودم هیچ ربطی به سیستم عامل نداشت :اشتباه: چون در برنامه من هر کاراکتری رو که فشار بدی بجاش کد UTF-8 مربوطه درج میشه :چشمک: این به این معنیه که اگه حتی روی ویندوز شما زبان فارسی نصب نشده باشه باز هم این برنامه کارایی داره و باز این به این معنی که حتی اگه سیستم عامل در حالت تایپ EN باشه باز هم کارایی خودش رو داره 

عیب برنامه
1- سیستم عامل باید از code page یونیکد پشتیبانی بکنه
2- حداقل یک فونت تورو تایپ یونیکد ( مثلا tahoma ) باید داشته باشید

که هر دو گزینه در سیستم عامل های مثل XP , vista ,2000 وجود داره :تشویق:

----------


## shima2006

البته من از کد خانم سارا استفاده کردم چون کد آقای توکل طولانی بود و علاوه بر اون باید برای هر تکست باکس این کد جداگانه نوشته می شد در حالی که کد خانم سارا کوتاه بود و با یک بار نوشتن اون در رویداد Form_KeyDown دیگه امکان تایپ انگلیسی در هیچ تکست باکسی وجود ندارد.
ولی من هنوز نمی دونم باید چیکار کنم که کاربر فقط و فقط حروف فارسی رو وارد کنه یعنی حتی اعداد رو هم نتونه در تکست باکس وارد کنه :متفکر:

----------


## sara62

سلام دوست عزیز
برای این که اعداد در تکست باکس نوشته نشه در خاصیت KeyPress تکست باکس کد زیر رو تایپ کنید
  if (char.IsNumber(e.KeyChar))
            {
                e.Handled = true;
            }
موفق باشید

----------


## monazzah

> ببین این چند خط کد من به دردت میخوره
> 
> توی این برنامه یه جعبه متن هست که شما چه زبان صفحه کلید رو تغییر بدهی چه تغییر ندهی فارسی دریافت میکنه


سلام آقا دمت گرم حسابی حال دادی :تشویق:  :تشویق:

----------


## Yasersadegh

سلام به همه دوستان



> ببین این چند خط کد من به دردت میخوره
> 
> توی این برنامه یه جعبه متن هست که شما چه زبان صفحه کلید رو تغییر بدهی چه تغییر ندهی فارسی دریافت میکنه


دوست عزيز من تويه اين تكست باكس نتونستم حرف 'پ' تايپ كنم!!
مشكل از كجاست!!؟ :متفکر:

----------


## Yasersadegh

> برنامه ای که من نوشته بودم هیچ ربطی به سیستم عامل نداشتچون در برنامه من هر کاراکتری رو که فشار بدی بجاش کد UTF-8 مربوطه درج میشهاین به این معنیه که اگه حتی روی ویندوز شما زبان فارسی نصب نشده باشه باز هم این برنامه کارایی داره و باز این به این معنی که حتی اگه سیستم عامل در حالت تایپ EN باشه باز هم کارایی خودش رو داره 
> 
> عیب برنامه
> 1- سیستم عامل باید از code page یونیکد پشتیبانی بکنه
> 2- حداقل یک فونت تورو تایپ یونیکد ( مثلا tahoma ) باید داشته باشید
> 
> که هر دو گزینه در سیستم عامل های مثل XP , vista ,2000 وجود داره


دوست عزيز برنامتون تويه سيستم عامل xp من در حالت انگليسي حرف پ رو تايپ نميكنه حرف ژ رو هم با شيف ز تاپي مي كنه!! ولي در حالت فارسي حرف پ در جايه خودش يعني با كاراكتر ~ تايپ ميشه و حرف ژ با كليد \ تايپ ميشه!!
يعني فكر مي كنم كه برنامتون به سيستم عامل ربط داشته باشه!!! :متفکر:

----------


## MOSTAFANAVVAB

چون دوستان کمک کردن فقط خواستم بگم یک سرچ کوچولو میتونه آدو را به جواب برسونه

----------


## fatemeh.1620

سلام دوستان، اگر ممکنه یکی به من بگه utf-8 چیه؟ کجاست؟ به چه درد می خوره؟ چطور از طریق اون unicode ها رو بدست بیارم؟ چطور با یونیکد برنامه نویسی کنم؟ ممنون میشم همین جا برام مطلبی بذارین! یا راهنمایی بفرمایید!  برنامه نویسی با C#‎ در محیط vs.net 2008 پایگاه داده sql server 2005 . :گریه:

----------


## reza69

> ببین این چند خط کد من به دردت میخوره
> 
> توی این برنامه یه جعبه متن هست که شما چه زبان صفحه کلید رو تغییر بدهی چه تغییر ندهی فارسی دریافت میکنه


 چجوری از کد شما به صورت تابع استفاده کنم؟

----------


## mostafa-66

باسلام به همه اساتید دوستان در رویداد key press این قطعه کد بنویسید حله ;



if (Convert.ToInt32(e.KeyChar) < 1569 || Convert.ToInt32(e.KeyChar) > 1740) 
                e.Handled = true;

----------

