PDA

View Full Version : سوال: تبدیل latin1_swedish_ci به utf8-general-ci بدون از دست رفتن داده ها؟



one hacker alone
یک شنبه 05 آذر 1396, 00:11 صبح
با سلام
دیتابیس utf8_general_ci هست اما تک تک table ها latin1_swedish_ci هستن
الان اگه بیام character set رو تو php تنظیم کنم روی utf8 داده های فعلی سایت من بهم میریزه و حروف ناخوانا میشن
از طرفی میخوام داده ها به صورت فارسی در phpmyadmin نمایش داده بشن که خب برای اینکار نیاز هست که روی utf8_general_ci تنظیم بشه
این وسط هر کاری بکنیم یه سری داده های قدیمی داریم در وضعیت latin1_swedish_ci
الان برای تبدیل از چه راهی استفاده کنم؟

sajjad.eskandary
یک شنبه 05 آذر 1396, 08:09 صبح
اول اینکه به جای utf8_general_ci از utf8_persian_ci استفاده کن تا در sort کردن به مشکل بر نخوری ..
دوم اینکه راه چاره تو اینه که یه جدول جدید با utf8_persian_ci ایجاد کن اطلاعاتت رو بریز تو جدول جدید ...
سوم هم اینکه نیازی نیست به خود table از charset استفاده کنی ... سعی کن واسه تک به تک فیلد ها استفاده کنی...

one hacker alone
دوشنبه 06 آذر 1396, 01:44 صبح
ممنون
داده ها رو چجوری انتقال بدم که از بین نره ؟ ایا نیازه براش اسکریپت بنویسم رکورد به رکورد بخونه و در دیتابیس جدید ذخیره کنه؟
اینکه میگید تک تک فیلد ها منظورتون اینه تو اسکریپت بعد از اتصال به پایگاه داده و قبل از ذخیره و بازیابی SET NAME utf8 کنم؟

sajjad.eskandary
سه شنبه 07 آذر 1396, 00:48 صبح
بعد اینکه جدول جدیدت رو با charset دلخواه ساختی
با این کد میتونی دیتا هاتو به جدول جدید وارد کنی

INSERT INTO `new_table` SELECT * from old_table;