PDA

View Full Version : مشکل با تکس باکس فارسی



m0rteza
جمعه 29 خرداد 1388, 11:32 صبح
سلام
من می خوام در یک تکس باکس عبارت فارسی که شامل عدد و حروف و علامت است رو وارد کنم . ولی به اون ترتیب که تایپ میشه نشون داده نمیشه . حتی در ادیتور سایت برنامه نویس که خواستم بنویسم هم همین مشکل رو داشتم. ولی برای انگلیسی همچین مشکلی نیست. با مسک هم نمی شه . مثلا
من میخوام از چپ به راست بنویسم
شش خط تیره دوازده ولی مینویسه : 6-12

morteza.azad
جمعه 29 خرداد 1388, 20:19 عصر
بايد موقع نوشتن از همون اول قلم رو فارسي كني. اينجوري درست مينويسه. ولي اگه اول با انگليسي بنويسي بعدش فارسي كني قروقاطي ميشه كه كلا نميشه حلش كرد چون تايپت اشتباه انتخاب شده.

afsharm
شنبه 30 خرداد 1388, 09:06 صبح
دوست عزیز اگر تکست باکس فقط شامل اعداد و علائم هستش بهتره direction تکست باکس را برابر ltr یعنی انگلیسی قرار بده و خیال خودتو راحت کن. در غیر این صورت باید از یک روش جالب که MS Word هم از اون استفاده می‌کنه، استفاده کنی. سه کاراکتر ویژه در یونیکد وجود دارد به نام‌های RIGHT-TO-LEFT EMBEDDING و LEFT-TO-RIGHT OVERRIDE و POP DIRECTIONAL FORMATTING. کدهای آنها هم به ترتیب برابر است با U+202B و U+202D و U+202C. کاراکتر اول را اول هر رشته‌ای که بگذاری با آن متن به مثابه یک متن کاملا فارسی برخورد می‌شود. کاراکتر دوم هم اول هر رشته‌ای که بیاید با آن متن مثل یک متن کاملا انگلیسی برخورد می‌شود. البته تاثیر هر کدام از این دو کاراکتر تا وقتی است که پردازشگر متن با کاراکتر سوم برخورد نکرده باشد. راه حل مشکل شما هم این است که خود کاربر موقع وارد کردن متن در تکست باکس به تناسب نیازش از این سه کاراکتر استفاده کند. اگر از صفحه کلید استاندارد ISIR 9147 استفاده کنید این سه کاراکتر در حالت فارسی به ترتیب بر روی کلیدهای alt+]‎ و alt+I و alt+P قرار دارد البته با alt راست.

برای اطلاع بیشتر به استانداردهای موسسه استاندارد ایران یعنی ماتصا ۹۱۴۷ و ماتصا ۶۲۱۹ و الگوریتم شماره ۹ یونیکد و ابزارک فردیس (http://fardis.codeplex.com)مراجعه کنید.

s_ahmadneya
شنبه 30 خرداد 1388, 09:49 صبح
دوست عزیز اگر تکست باکس فقط شامل اعداد و علائم هستش بهتره direction تکست باکس را برابر ltr یعنی انگلیسی قرار بده و خیال خودتو راحت کن. در غیر این صورت باید از یک روش جالب که MS Word هم از اون استفاده می‌کنه، استفاده کنی. سه کاراکتر ویژه در یونیکد وجود دارد به نام‌های RIGHT-TO-LEFT EMBEDDING و LEFT-TO-RIGHT OVERRIDE و POP DIRECTIONAL FORMATTING. کدهای آنها هم به ترتیب برابر است با U+202B و U+202D و U+202C. کاراکتر اول را اول هر رشته‌ای که بگذاری با آن متن به مثابه یک متن کاملا فارسی برخورد می‌شود. کاراکتر دوم هم اول هر رشته‌ای که بیاید با آن متن مثل یک متن کاملا انگلیسی برخورد می‌شود. البته تاثیر هر کدام از این دو کاراکتر تا وقتی است که پردازشگر متن با کاراکتر سوم برخورد نکرده باشد. راه حل مشکل شما هم این است که خود کاربر موقع وارد کردن متن در تکست باکس به تناسب نیازش از این سه کاراکتر استفاده کند. اگر از صفحه کلید استاندارد ISIR 9147 استفاده کنید این سه کاراکتر در حالت فارسی به ترتیب بر روی کلیدهای alt+]‎ و alt+I و alt+P قرار دارد البته با alt راست.

برای اطلاع بیشتر به استانداردهای موسسه استاندارد ایران یعنی ماتصا ۹۱۴۷ و ماتصا ۶۲۱۹ و الگوریتم شماره ۹ یونیکد و ابزارک فردیس (http://fardis.codeplex.com)مراجعه کنید.
با تشکر من هم این مشکل دارم دستور بالا را هم تست کردم اما بازم مشکل است .ضمنا" در ورد هم این مشکل است . بعبارتی


شش خط تیره دوازده ولی مینویسه : 6-12

اگه ممکن یه کد نمونه بگذار با روش بالا شاید این مشکل ما حل بشه

afsharm
دوشنبه 01 تیر 1388, 08:51 صبح
نمونه کد نمی‌خاد، فقط از اون سه کاراکتر ویژه موقع ورود متن استفاده کنید. به عنوان مثال من در خط پایین در حالی که زبان جاری ویندوز همچنان فارسی است، رشته مورد نظر شما را تایپ می‌کنم:

نمونه ‫6-12‬ نمونه

------------------
حال اگر از آن سه کاراکتر استفاده نمی‌کردم:

نمونه 6-12 نمونه


-------------------------------------------
هر دو رشته بالا را که اولی درست و دومی غلط است را می‌توانید در «ابزارک فردیس» (http://fardis.codeplex.com) به کد یونیکد تبدیل کرده و وجود ۲ تا از آن کاراکترهای ویژه را متوجه بشوید.