• ¡Welcome to Square Theme!
  • This news are in header template.
  • Please ignore this message.
مهمان عزیز خوش‌آمدید. ورود عضــویت


امتیاز موضوع:
  • 9 رای - 2.33 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Title: وارد کردن حروف فارسی بدون تغییر زبان کیبرد
حالت خطی
#1
شايد تا به حال سايت های فارسی مختلفی از قبيل سازمان سنجش، دانشگاه پيام نور و... را ديده باشيد که در هنگام ورود اطلاعات در تکست باکس های نام و نام خانوادگي و نام پدر بدون اينکه زبان کيبرد را تغيير دهيم مي توان به صورت فارسي در آن نوشت. در اين مقاله می خواهيم اين روش را توضيح دهيم.

برای اين منظور ويژوال استوديو ۲۰۰۵را باز نموده يک پروژه از نوع Web Site ساخته و در صفحه Default آن دو کنترل تکست باکس (Input (Text)) از برگه Html استاندارد و يک کنترل Button از برگه Standard بر روی فرم بياندازيد.خاصيت هاي id و name را نيز در کنترل تکست باکس ها حتماً مقداردهي کنيد.

سپس در Enterprise Manager در پايگاه داده Pubs يا هر پايگاه داده دلخواه يک جدول به نام Moshakhasat با ستونهای Name و Family از نوع nvarchar با طول ۱۲ و ۲۰ بسازيد.

سپس بر روی کنترل Button کليک کنيد تا برای رويداد کليک آن کد زير را بنويسيم. همچنين رشته اتصال به بانک را در فايل Web.Config قرار مي دهيم.
کد:
Sub btn_Click(sender as system.Object, e as system.EventArgs) Handles  btn.click

Dim conPubs as SqlConnection = New SqlConnection()

conPubs.ConnectionString =

        ConfigurationManager.ConnectionStrings("connectionStringPubs").ConnectionString

Dim cmdInsert as SqlCommand =

              New SqlCommand("Insert Into Moshakhasat values(@Name,@Family)", conPubs)

cmdInsert.Parameters.Add(New SqlParameter(("@Name",TxtName.value))

cmdInsert.Parameters.Add(New SqlParameter("@Family",TxtFamily.value))

conPubs.Open()

cmdInsert.ExecuteNonQuery()

conPubs.Close()

End Sub

کد فوق مربوط به اضافه کردن دو فيلد فوق به جدول مشخصات است.

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

// Farsi keyboard map based on ISIRI-2901

var farsikey = [

0x0020, // " "

0x0021, // "!"

0x061B, // ";"

0x066B, // ","

0x00A4, // " "

0x066A, // "%"

0x060C, // "،"

0x06AF, // "گ"

0x0029, // "("

0x0028, // ")"

0x002A, // "*"

0x002B, // "+"

0x0648, // "و"

0x002D, // "-"

0x002E, // "."

0x002F, // "/"

0x06F0, // "۰"

0x06F1, // "۱"

0x06F2, // "۲"

0x06F3, // "۳"

0x06F4, // "۴"

0x06F5, // "۵"

0x06F6, // "۶"

0x06F7, // "۷"

0x06F8, // "۸"

0x06F9, // "۹"

0x003A, // ":"

//0x0643, // "ك"

0x06A9, // "ک"

0x003E, // "<"

0x003D, // "="

0x003C, // ">"

0x061F, // "?"

0x066C, // "،"

0x0624, // "ؤ"

0x200C, // " "

0x0698, // "ژ"

0x0649, // "ی"

0x064D, // " "

0x0625, // " "

0x0623, // "ًٌٍإ"

0x0622, // " "

0x0651, // " "

0x0629, // "ًٌة"

0x00BB, // "«"

0x00AB, // "»"

0x0621, // "ء"

0x004E, // "N"

0x005D, // "["

0x005B, // "]"

0x0652, // " "

0x064B, // " "

0x0626, // "ئ"

0x064F, // " "

0x064E, // " "

0x0056, // "V"

0x064C, // " "

0x0058, // "X"

0x0650, // " "

0x0643, // "ك"

0x062C, // "ج"

0x005C, // "\"

0x0686, // "چ"

0x00D7, // "x"

0x0640, // "-"

0x200D, // " "

0x0634, // "ش"

0x0630, // "ذ"

0x0632, // "ز"

0x06CC, // "ی"

// 0x064A = ي

0x062B, // "ث"

0x0628, // "ب"

0x0644, // "ل"

0x0627, // "ا"

0x0647, // "ه"

0x062A, // "ت"

0x0646, // "ن"

0x0645, // "م"

//0x067E, // "پ"

0x0626, // "ئ"

0x062F, // "د"

0x062E, // "خ"

0x062D, // "ح"

0x0636, // "ض"

0x0642, // "ق"

0x0633, // "س"

0x0641, // "ف"

0x0639, // "ع"

0x0631, // "ر"

0x0635, // "ص"

0x0637, // "ط"

0x063A, // "غ"

0x0638, // "ظ"

0x007D, // "{"

0x007C, // "|"

0x007B, // "}"

0x007E // "~"

];





var lang = 1; // 1: Farsi, 0: English

function changeLang() {

if (lang == 0) {

lang = 1;

return true;

}

else {

lang = 0;

return true;

}

}



function FKeyDown (txtFrm){

var key = window.event.keyCode;

if (key == 145){

if (lang == 0) {

lang = 1;

return true;

}

else {

lang = 0;

return true;

}

}

}



function FKeyPress(txtFrm) {

var key = window.event.keyCode;



if (key == 13) { window.event.keyCode = 13; return true; }

if (lang == 1) { // If Farsi

if (key == 0x0020 && window.event.shiftKey) // Shift-space -> ZWNJ

window.event.keyCode = 0x200C;

else

window.event.keyCode = farsikey[key - 0x0020];

if (farsikey[key - 0x0020] == 92) {

window.event.keyCode = 0x0698;

}

if (farsikey[key - 0x0020] == 8205) {

window.event.keyCode = 0x067E;

}

}

return true;

}



برای اين منظور در پروژه فوق (Add New Item(Ctrl+shift+A و سپس در Templates فايل Jscript File را انتخاب کرده و نام آن را به KeyFarsi تغيير دهيد و کد فوق را در آن کپی کنيد و سپس آن را ذخيره کنيد. حال در تکست باکس های TxtName و TxtFamily رويدادهای ;"('')onkeypress="FKeyPress('');" onkeydown="FKeyDown را در آن قرار می دهيم. در تکست باکس های فوق حتماً خاصيت "runat="server و در تکست باکس نام "id="TxtName و "name="TxtName را در هر کنترل قرار دهيد. و در تکست باکس فاميلي نيز اين کار انجام دهيد.

همچنين در Page-Load صفحه کد زير را جهت اجرا شدن کد جاوا اسکريپت قرار دهيد:

Dim script As String = "./KeyFarsi.js"

Page.ClientScript.RegisterClientScriptInclude(Me.GetType, "MyKey", script)



توجه :در تگ Input حتماً بايد تگ پايانی </Input> را قرار دهيد در غير اينصورت کامپايلر خطای قرار ندادن تگ پايانی را اعلام می کند.

مزايا: اصلی ترين مزيت اين روش وارد شدن اطلاعات به صورت فارسی به ديتابيس و چند زبانی نشدن داده های ورودی به بانک اطلاعاتی است. استفاده از اين روش در پايگاه داده Access که با ورود اطلاعات به صورت فارسی مشکل دارد نيز مفيد می باشد.

برای نمايش حروف فارسی در صفحه وب لازم است كه از charset=windows-1256 يا utf-8 استفاده نماييد.

فونت صفحه را نيز يكی از دو فونت Times New Roman و يا Tahoma انتخاب نماييد. اين دو فونت فونتهای استاندارد ويندوز بوده و برای ديده شدن متون فارسی نيازی به نصب فونت جديد روی سيستم کاربر نخواهد بود.
نویسنده این مطلب فکر کنم اقای کمالی بودن
گروه دور همی پارسی کدرز
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg
 
پاسخ
  


پیام‌های این موضوع
وارد کردن حروف فارسی بدون تغییر زبان کیبرد - توسط Amin_Mansouri - 07-04-2011، 01:34 PM

موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  سوال در رابطه با کد فرم ورود در asp.net و زبان C# raana 2 5,224 09-21-2016، 11:10 AM
آخرین ارسال: raana
  date and Time picker فارسی aspdotnet 0 5,320 01-18-2014، 04:28 PM
آخرین ارسال: aspdotnet
  بايند کردن فايل swf در ريپيتر aspdotnet 1 4,358 01-06-2013، 05:56 PM
آخرین ارسال: aspdotnet
  چک کردن سايز و حجم و نوع تصوير در آپلود aspdotnet 3 9,832 11-30-2012، 11:42 PM
آخرین ارسال: Amin_Mansouri
  مراحل اضافه کردن سورس asp به هاست لینوکس poupak 2 5,972 11-18-2012، 08:23 AM
آخرین ارسال: salman1989
  مشکل دارم با لود کردن DLLدر وب Ghoghnus 12 17,142 09-02-2012، 12:32 PM
آخرین ارسال: Ghoghnus
  چند زبانه کردن صفحات وب Ghoghnus 2 5,677 08-27-2012، 04:34 PM
آخرین ارسال: Ghoghnus
  تغییر در تم صفحات وب به صورت پویا Ghoghnus 1 4,358 08-26-2012، 11:59 PM
آخرین ارسال: Amin_Mansouri
  سورس کد اپلود کردن فایل (asp.net) Amin_Mansouri 0 7,024 06-17-2012، 09:19 AM
آخرین ارسال: Amin_Mansouri
Question چگونگی برطرف کردن باگfckeditorدر پروژه ها Ghoghnus 3 7,116 09-30-2011، 11:44 AM
آخرین ارسال: Amin_Mansouri

پرش به انجمن:


Browsing: 1 مهمان