ورود

View Full Version : سوال: دلیل به هم ریختگی حروف فارسی



WithoutBrain1994
پنج شنبه 10 مهر 1393, 15:41 عصر
با سلام خدمت شما
من تا چند وقت پیش به راحتی از mysql استفاده میکردم
ولی یهو کلمات فارسی ریخت بهم
قبلا توی دیتابیس کلمات به این صورت ذخیره میشد بازگشت پادشاÙ
و زمان فراخوانی به درستی نشون میداد
اما الان موقع فراخوانی دقیقا همون کاراکترها رو میاره
لطفا راهنمایی کنید
با تشکر

حمید رضا رحیمیان
پنج شنبه 10 مهر 1393, 16:46 عصر
سلام
یا نوع کل دیتابیس یا نوع کلکشن همون فیلد را utf8_persian_ci انتخاب کن.

اگذ بخوای کل دیتابیس باید از phpadmin برید قسمت operations ,و اونجا تغییر بدید خود فیلد هم میتونید ادیت کنید و نوع Collation یو تی اف بزارید

WithoutBrain1994
پنج شنبه 10 مهر 1393, 17:04 عصر
ممنون
ولی هر دوتا رو امتحان کردم نشد

mohammad reza beizavi
پنج شنبه 10 مهر 1393, 18:05 عصر
درود
فایل my.cnf رو باز کن این چند تا خز رو اضافه کن:


skip-character-set-client-handshake
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

حالا سرویس mysql رو restart کن.
دیتا بیست رو بساز (با همون collation پیش فرض).
اگه دیتابیسی هم از قبل داری یه dump ازش بگیر و داخل این دیتابیس restore کن.
امیدوارم مشکل حل بشه، پیروز باشید

aliphp1
پنج شنبه 10 مهر 1393, 18:24 عصر
اینا رو قبل از کد هات بزار اوکی میشه
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET SESSION collation_connection = 'utf8_persian_ci'");

WithoutBrain1994
پنج شنبه 10 مهر 1393, 19:25 عصر
درود
فایل my.cnf رو باز کن این چند تا خز رو اضافه کن:


سرور دست من نیست که این کارها رو انجام بدم



اینا رو قبل از کد هات بزار اوکی میشه


باز هم نشد
راهی هست که بشه همون کاراکترها رو تبدیل به کاراکتر فارسی کرد و دوباره ذخیره کرد؟
چون الان که میخوام اطلاعات رو ذخیره کنم هم توی دیتابیس و هم توی مرورگر درست نشون میده
فقط مشکلم با اطلاعاتی هست که قبلا ذخیره کردم

aliphp1
جمعه 11 مهر 1393, 10:21 صبح
سرور دست من نیست که این کارها رو انجام بدم



باز هم نشد
راهی هست که بشه همون کاراکترها رو تبدیل به کاراکتر فارسی کرد و دوباره ذخیره کرد؟
چون الان که میخوام اطلاعات رو ذخیره کنم هم توی دیتابیس و هم توی مرورگر درست نشون میده
فقط مشکلم با اطلاعاتی هست که قبلا ذخیره کردم

به خاطر این هست که شما دیتابیس تون رو تغییر دادین
ببنید شما می تونستید با همون collation قبلی که داشت دیتابیس تون از اون کدهایی که دادم موقع ریختن و خوندن کوئری استفاده کنید
در این صورت توی دیتابیس اطلاعات ناخوانا بود ولی توی صفحه وب مشکلی نداشت
راه دیگه این هست که شما collation جدول ها تون رو از اول فارسی انتخاب کنید که در این صورت هم در دیتابیس و هم در هنگان خوندن خوانا هست
ولی شما اومدن اطلاعاتی که از قبل با UTF8 ذخیره نشده بوده رو حالا جدول هاشو تغییر دادین به همین خاطر اینطوری شده
راهش اینه که collation رو برگردونید به حالت قبل و یا اینکه اون اطلاعات رو مجددا وارد دیتابیس کنید .

WithoutBrain1994
جمعه 11 مهر 1393, 11:06 صبح
قبل از اینکه بخوام collation رو تغییر بدم ریخت بهم
من میخواستم یه دیتابیس جدید بسازم و وقتی که ساخته شد دیتابیس قبلی این بلا سرش اومد
پس تنها راهش اینه که دوباره اطلاعات رو ذخیره کنم؟
و اینکه چکارش کنم که دیگه همچین اتفاقی برام نیوفته؟