PDA

View Full Version : فارسی نویسی در Mysql



barnamenevism
یک شنبه 14 مهر 1392, 23:20 عصر
دوستان ببخشید نمیدونم این تاپیک تکراری هست یا نه ولی نیاز شدیدم باعث شد که این تاپیک رو بزنم.ممنون میشم دوستان خوب و اساتید بنده کمک کنن و این مشکل رو حل کنن...

من یه بانک دارم که مای اسکیو ال هست. و نزدیک به 20 یا 30 هزار رکورد داره. بنا به دلایلی نیاز شده که اونو وصل کنم به دات نت. متاسفانه در بانک اسکیو ال تمامی حروف بهم ریخته هست(که البته تا حدی عادی هست) حالا هرچند با دستورات phpمیشه اطلاعات رو درست دید. ولی من میخوام با C#‎‎‎‎‎‎‎ ‌یه فرم بسازم و بخشی از بانک mysql رو نمایش بدم. ولی متاسفانه کلا در دیتا گرید ویوی من متن بهم ریخته و خطوط نامشخصی به نمایش در میاد. در کل باید بگم.............. کمـــــــــــــــک
:گریه:

khokhan
یک شنبه 14 مهر 1392, 23:33 عصر
دوستان ببخشید نمیدونم این تاپیک تکراری هست یا نه ولی نیاز شدیدم باعث شد که این تاپیک رو بزنم.ممنون میشم دوستان خوب و اساتید بنده کمک کنن و این مشکل رو حل کنن...

من یه بانک دارم که مای اسکیو ال هست. و نزدیک به 20 یا 30 هزار رکورد داره. بنا به دلایلی نیاز شده که اونو وصل کنم به دات نت. متاسفانه در بانک اسکیو ال تمامی حروف بهم ریخته هست(که البته تا حدی عادی هست) حالا هرچند با دستورات phpمیشه اطلاعات رو درست دید. ولی من میخوام با C#‎‎‎‎‎‎‎ ‌یه فرم بسازم و بخشی از بانک mysql رو نمایش بدم. ولی متاسفانه کلا در دیتا گرید ویوی من متن بهم ریخته و خطوط نامشخصی به نمایش در میاد. در کل باید بگم.............. کمـــــــــــــــک
:گریه:
به همراه رشته اتصالتون عبارت charset=utf8 رو بکار ببرین به عنوان مثال

server=localhost;database=mydb;User Id=root;Password=1234;charset=utf8;

barnamenevism
دوشنبه 15 مهر 1392, 07:09 صبح
آقا ممنون که پاسخ دادی...
این کارو هم قبلا کردم ولی باز همون آش هستو همون کاسه.
اطلاعاتی که جدید ثبت می کنم فارسی هست.. و مشکلی در این زمینه نیست.
اطلاعات قبلیم رو نمیدونم چی کار کنم:متفکر:
من نمیخوام 30 هزار رکورد رو مجدد بنویسم:افسرده:...خودتون ببینید تعداد یوزرها فقط 450 :گریه:
البته میشه با هزار ترفند این رکورد ها رو اول در یه اکسل کپی کرد بعد وارد محیط .نت کرد یا حتی هر روش دیگه که دوستان به فکرشون میرسه / ولی چون من میخوام این برنامه در کنار برنامه اصلی قرار بگیره و مستقیم به دیتابیس وصل باشه،دیگه نمیشه از این فکرا واسش کرد...
تمامی تنظیمات مربوط به دیتایس رو از خود دیتابیس گرفته تا جداول به utf8 تغییر دادم.
ولی باز مشکل اینه که داده های قبلیم خرچنگ قورباغه هست.و من قبلی ها رو لازم دارم

barnamenevism
دوشنبه 15 مهر 1392, 20:26 عصر
یعنی میشه یکی بیاد اینجا:اشتباه: یعنی میشه یه جواب بده به ما:افسرده: یعنی میشه:گریه:

younes221
دوشنبه 15 مهر 1392, 22:04 عصر
یعنی میشه یکی بیاد اینجا:اشتباه: یعنی میشه یه جواب بده به ما:افسرده: یعنی میشه:گریه:

سلام ، ببینید اول شما collation جدولتون رو به utf8 تغییر بدین ( در محیط workbech رو اسم جدولتون راست کلیک کنیدو گزینه alter table رو انتخاب سپس در قسمت Collation اونو انتخاب کنید) ، سپس از همون Connection String ای که دوستمون قرار دارن استفاده کنید . امتحان کردم و جواب گرفتم

اگر محیط workbech را ندارید می تونید از دستور زیر در رابط خط فرمان MySql استفاده کنید :

alter table <some_table> convert to character set utf8 collate utf8_unicode_ci;
به جای <some_table> نام جدول خودتون رو قرار بدین.

همچنین می تونید کل دیتابیستون رو هم تغییر بدین :

ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_general_ci;

http://www.uploadax.com/images/68807124310820685608.jpg (http://www.uploadax.com/)

barnamenevism
دوشنبه 15 مهر 1392, 22:18 عصر
دوست عزیز مرسی که اومدی پاسخ دادی
من خودم میتونم تو پایگاه فارسی بنیوسم داد های قبلیم رو نمی دونم چی کار نم....
راستی من همه تنظیمات جدولم روی utf8 هستش

younes221
دوشنبه 15 مهر 1392, 22:55 عصر
ببینید احتمالا شما از WampServer استفاده می کنید یا شایدم EasyPhp یا .. . در هر صورت رابطه خط فرمان MySql را اجرا کنید . و شبیه اون دستورات قبلی که براتون رو نوشتم در اون رابط تایپ کنید . مثلا برای تغییر Collation جدول person از دستور زیر استفاده کنید :


alter table person convert to character set utf8 collate utf8_unicode_ci;

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

من با محیط phpmyadmin کار نکردم به همین خاطره که نمیدونم چطوری collation رو با استفاده از اون تغییر بدم.

barnamenevism
دوشنبه 15 مهر 1392, 23:26 عصر
من دستور شما رو اگر درست متوجه شده باشم با این سبک به اجرا در آوردم.ضمن من از WampServer استفاده میکنم. راستی همانطور که گفتم من کل تنظیمات بانکم روی utf8 هست. نمیدونم چه مرگشه که فارسی نشون نمیده. حتی بعد از کانکشن مربوط به php دستور mysql_query("SET NAMES 'UTF8'"); رو دادم ولی خدااااااااااااااااااااااا ااااااااااااااااااااااا
فقط تو خود فرمهای پی اچ پی فارسی رو درست نشون میده. تو فرم C#‎ اصلا راه نمیده و من فرم c# رو لازم دارم.