PDA

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



shahroq
چهارشنبه 25 خرداد 1384, 11:37 صبح
سلام
تو یه application که با php و mysql نوشته شده و تحت سرور linux کار میکنه اطلاعات بسته به اینکه از سیستم عامل winxp یا win2k وارد بانک بشه باهم تفاوت داره. مثلا کاربری اگه با xp یه شماره سریال مثل 123ی رو وارد کنه کاربر دیگه با win2k میتونه دوباره این شماره سریال رو وارد کنه.(شرط یکتایی چک میشه)
ظاهرا win2k هایی که office sp جدید یا office xp روشون نصب شده هم اطلاعات وارد شده با winxp رو پیدا میکنند.
کسی به این مشکل برخورد کرده؟

oxygenws
چهارشنبه 25 خرداد 1384, 13:32 عصر
من منظورت رو نفهمیدم.

shahroq
شنبه 04 تیر 1384, 14:50 عصر
سلام
ببین فرض کن شماره سریالی مثل 123ی فقط یکبار اجازه داشته باشه وارد database بشه.
من یکبار با یه کامپیوتری که سیستم عاملش xp است این شماره رو وارد میکنم. اگر دوباره بخوام این شماره رو وارد کنم سیستم پیغام میده که این شماره سریال الان موجوده و نمیشه دوباره واردش کرد.
حالا من با یه کامپیوتر دیگه که سیستم عاملش win2k است وارد سیستم میشم و میتونم دوباره این شماره سریال رو وارد کنم. چون sql statement ای که یکتایی رو چک میکنه سریال قبلی رو پیدا نمیکنه.



SELECT * FROM mytbl WHERE serial='ی123'

oxygenws
شنبه 04 تیر 1384, 18:26 عصر
خوب... تعداد این حروف چند تاست؟؟
فکر نکنم 2-3 تا بیشتر باشه.
داخل برنامه، قبل از ریختن تو بانک و یا چک کردن مابقی مقادیر بانک، "ی" رو با "ی" عوض کن (یا برعکس)

shahroq
سه شنبه 07 تیر 1384, 17:45 عصر
‌با جاوا اسکریپت؟
تابعی برای این کار داری؟

oxygenws
سه شنبه 07 تیر 1384, 20:05 عصر
بهتره سمت سرور کار کنی.
لازم نیست با جاوا اسکریپت کار کنی. (حتی به نظر من "درست" نیست!)

armin390
سه شنبه 21 تیر 1384, 03:32 صبح
آیا charset رو در صفحه ای که در آن شماره سریال رو می گیره تعیین کردی یا توسط مرورگر تعیین می شود؟؟؟؟

oxygenws
سه شنبه 21 تیر 1384, 03:53 صبح
آرمین... فرقی نمی کنه... مهم اینه که از برخی کاراکتر ها، در یونیکد دو یا چند نوع وجود داره.
مثلا حرف "ی" و حرف "ی" وجود دارند.... اولی فارسی، و دومی انگلیسی، اولی در ویندوز 98 به قبل و دومی از 98 به اینور.

armin390
جمعه 24 تیر 1384, 09:06 صبح
یعنی منظورت اینه که charset صفحه ی فرم مون هرچی باشه و نتیجه را در mysql ذخیره کنیم(اگر به عنوان مثال در ورودی هردو بنویسیم فارس) در هنگامی که می خواهیم از mysql بخونیم هر دو یکی اند؟

oxygenws
جمعه 24 تیر 1384, 11:37 صبح
من می گم قبل از ریختن هر داده ای در بانک و قبل از جستجو کردن هر داده ای......
حروف فارسی مشکل دار (مثل "ی") رو با یک replace ساده به یک شکل تبدیل کنیم.

همونطور که گفتم..... در صفحات یونیکد.... حرف "ی" و "ی" وجود دارند، و هیچ کدوم اشتباه نیست.

armin390
شنبه 25 تیر 1384, 08:34 صبح
یعنی اگر فقط "ی" را به "ی" تبدیل کنیم دیگر مشکل ما حل است( charset صفحه فرم چه ویندوز باشد چه utf-8)؟

oxygenws
شنبه 25 تیر 1384, 11:22 صبح
صورت سوال ربطی به نوع کاراکتر ست نداره و وقتی سایت داره با یک نوع ورودی (مثلا صفحه HTML با انکودینگ utf-8) کار می کنه، دیگه چنین مشکلی نیست و با تبدیل کاراکتر ها به یک "شکل" واحد، مشکل حل میشه!!