سلام
چطور میتونم یه تیبل که Collation اش روی latin1_swedish_ci هست رو به utf8_general_ci تبدیل کنم در حالی که اطلاعات داخل تیبل هم Convert بشه به UTF8 و مشکلی با متن های فارسی نباشه؟
پیشاپیش ممنون از جوابتون
باید اکسپرت بگیری و مطمئن بشی که اکسپرت که گرفتی درسته یعنی انکودینگش utf-8 هست
بعد با یه ادیتور ریپلیس کنی کالیشن و انکودینگ رو
کار دردسر داریه تقریبا هیچ روش دیگه ای هم نداره یا من بلد نیستم
فایل بکاپ دیتابیس بیشتر از 1 گیگ حجمش میشه
راه دیگه ای نیست؟
انکودینگ پیج های سایت utf8 هست و اطلاعات بصورت unicode ذخیره شده
نمیشه مستقیم collection رو utf8_general_ci کرد؟
کد:
ALTER DATABASE <dbname> COLLATE utf8_general_ci
اینو تست کردم همش علامت سوال شد اینجوری: ؟؟؟ ؟؟؟؟؟؟ ؟؟؟ ؟؟؟؟؟؟ ؟؟؟؟؟
تقریبا راه دیگه ای نیست
به همون شکل علامت سوال در می یاد یه راه دیگه هم هست تک تک فیلد ها رو به باینری تبدیل کنی بعد به string با انکودینگ درست
که اینم کار سختیه
چند تا سؤال:
1. شما چرا می خوای Collation رو عوض کنی؟
2. این کار فقط باید یک بار انجام بشه؟
3. چند تا Table داری و حدوداً هر کدوم چند تا Field دارن؟
نقل قول: یه راه دیگه هم هست تک تک فیلد ها رو به باینری تبدیل کنی بعد به string با انکودینگ درست
که اینم کار سختیه
اینو بیشتر توضیح میدی؟
-----------------------------------------------------------------
far_222000:
1- برای اینکه بعضی کاراکتر های یونیکد در دیتابیس خراب میشن
دوما اگه بخوام اطلاعات رو با برنامه ای مثل phpmyadmin ویرایش کنم چون utf8 داخل latin1_swedish هست قابل خوندن نیست و اینجوری توی phpmyadmin نشون داده میشه: میزبانی وب Ùˆ Ø
بعد از ویرایش هم تیبل ها همشون به هم میریزه و اطلاعات علامت سوال میشن
2- بله.
بعضی از تیبل های اولیه توسط یه برنامه نویس دیگه درست شده بودن که حالا رفته
و مسئولیت کل دیتابیس به عهده منه و نیاز هست به حالت استاندارد برشون گردونم.
3- 20 تا تیبل ، هر کدوم تعداد متفاوتی بین 5 تا 18 تا فیلد دارن
و در دیتابیس چندین هزار رکورد وجود داره.
راستی بعضی از تیبل ها هم دارای collection درست (utf8_general_ci) هستن
اما بعضی ها که میخوام درست بشن latin_swedish هستن
و اینو هم مجدد بگم که اطلاعات تمام تیبل ها (هر دو نوع بالا) با انکودینگ utf8 ذخیره شدن
الان یه فکری به سرم زد....
نمیشه مثلا با یه اسکریپت PHP اطلاعات رو بخونیم و تو یه تیبل دیگه بریزیم؟
یه اسکریپتی مثل bigdump
اونی که گفتم تایپ هر فیلدی که استرینگ هست رو بکن باینری دوباره برش گردون به استرینگ تو قسمت استراکچر تیبل
روش استفاده از یه کد php هم شدنیه