PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : برگرداندن نوشته های خراب شده به خاطر utf8



abolfazlgoodarzi
June 5th, 2011, 15:38
سلام - من از روشی برای ارسال اطلاعات به دیتابیس استفاده می کردم که بعدا متوجه شدم نوشته ها به صورت نادرست به دیتابیس فرستاده می شوند؛ یعنی به این صورت:


%D8%AA%D8%B5%D9%88%DB%8C%D8%B1%D8%A8%D8%B1%D8%AF%D 8%A7%D8%B1%DB%8C_%D9%BE%D8%B2%D8%B4%DA%A9%DB%8C
تعداد رکورد ها هم به چند هزارتایی میرسند و اطلاعات واقعا ارزشمندی هستند؛ آیا روشی چیزی هست که به کلیه نوشته ها توی دیتابیس (phpmyadmin) به صورت درست نشان داده بشود؟

tinavps
June 5th, 2011, 23:01
با php یک بار بخوان ان کود دکود کن و به Utf-8 بریز تو جدول جدید
یعنی ساختار جدول جدیدت کارکتر ست utf-8 general or persian باشه
من یک کد نوشته بودم که وصل میشد به دیتابیس نام کل جداولش رو می گرفت به ازای تک تک فیلد ها در دیتابیس جدید جداول و فیلدهارو می ساخت و داده هارو انتقال می داد
سرعت انتقال هم بالاست (شما گفتی چند هزارتاست)

abolfazlgoodarzi
June 6th, 2011, 06:08
با php یک بار بخوان ان کود دکود کن و به Utf-8 بریز تو جدول جدید
یعنی ساختار جدول جدیدت کارکتر ست utf-8 general or persian باشه
من یک کد نوشته بودم که وصل میشد به دیتابیس نام کل جداولش رو می گرفت به ازای تک تک فیلد ها در دیتابیس جدید جداول و فیلدهارو می ساخت و داده هارو انتقال می داد
سرعت انتقال هم بالاست (شما گفتی چند هزارتاست)

حدود 8هزار رکورد میشه و یک جدول هم بیشتر نیست. می تونی کدش رو برام بذاری!؟
ممنون.

افرادیتا
March 9th, 2012, 23:06
با سلام

این موضوع به خاطر دابل انکدینگ هستش که متاسفانه یکی از ضعف های phpmyadmin هست ولی در خروجی اگه utf-8 تنظیم کنید حروف درست میشن ولی تو phpmyadmin این مشکل به راختی برطرف نمیشه

ali2k
March 10th, 2012, 00:19
با سلام

این موضوع به خاطر دابل انکدینگ هستش که متاسفانه یکی از ضعف های phpmyadmin هست ولی در خروجی اگه utf-8 تنظیم کنید حروف درست میشن ولی تو phpmyadmin این مشکل به راختی برطرف نمیشه


تاپیک زیر خاکی برای پارسال هست !
این مشکل هم ربطی به دیتابیس و phpmyadmin نداره عبارت هایی که ذخیره کردند urlencode هست و باید با تابع urldecode به حالت عادی utf8 بازگردند ! مثلا همین عبارتی که در بالا نوشتند به فارسی میشه "تصویربرداری_پزشکی "

payam_shzbax
March 10th, 2012, 02:43
تاپیک زیر خاکی برای پارسال هست !
این مشکل هم ربطی به دیتابیس و phpmyadmin نداره عبارت هایی که ذخیره کردند urlencode هست و باید با تابع urldecode به حالت عادی utf8 بازگردند ! مثلا همین عبارتی که در بالا نوشتند به فارسی میشه "تصویربرداری_پزشکی "

میشه توضیح کامل تر بدید؟

ali2k
March 10th, 2012, 12:06
میشه توضیح کامل تر بدید؟

برای جابجایی اطلاعات در url که متد GET هست طبق استاندارد پروتکل http باید url encode صورت بگیره و وقتی اطلاعات را خواستید دوباره استفاده کنید باید url decode انجام بشه ، مثلا شما در گوگل یک کلمه فارسی سرچ کنید بعد به ادرس url نگاه کنید متوجه می شید که یکسری عبارت که با % شروع میشن در url هست که این تبدیل شده متن فارسی به urlencode هست حالا مشکل که استارتر گفتند به خاطر ذخیره کردن urlencode هست کافیه با مثلا php هر متن را به تابع urldecode بدهند و خروجی متن فارسی utf8 صحیح قابل استفاده خواهد بود.