PDA

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



iroo
March 5th, 2016, 23:51
سلام و خسته نباشید
دوستان من به مشکلی بر خوردم که نیاز به کمک دارم، ممنون میشم راهنمایی بفرمائید
من یه جدول توی mysql دارم که چند تا از فیلدهاش فارسی رو ذخیره می کنند

تمامی فیلدهای فارسی به درستی ذخیره میشه جزء یکی

توی ساخت جدول مقدار این فیلد ها text تایین شده، حال میام از کاربر یکسری توضیحات فارسی رو میگیرم و ذخیره می کنم توی جدول

ذخیره میشه، ولی کاراکترهای فارسی ببه هم میریزه! طبق تصویر پیوست

حالا میام نمایش بدم، مقدار ور از فیلد می گیرم و چاپ می کنم، همون کاراکتر چاپ میشه و معادل فارسی رو نشون نمیده
مورد دوم هم اینکه اگه برای ذخیره فارسی این کاراکترها توی جدول ذخیره بشه حجم جدول بالا میره چون برای یک کاراکتر فارسی 5 - 6 تا کاراکتر معادل ذخیره میشه


به نظرتون مشکل از کجاست؟؟؟ چرا پس فیلد های دیگه که دقیقا مثل این هستند مشکلی ندارند؟

ممنون میشم راهنمایی کنید

soheil869
March 6th, 2016, 12:18
سلام و خسته نباشید
دوستان من به مشکلی بر خوردم که نیاز به کمک دارم، ممنون میشم راهنمایی بفرمائید
من یه جدول توی mysql دارم که چند تا از فیلدهاش فارسی رو ذخیره می کنند

تمامی فیلدهای فارسی به درستی ذخیره میشه جزء یکی

توی ساخت جدول مقدار این فیلد ها text تایین شده، حال میام از کاربر یکسری توضیحات فارسی رو میگیرم و ذخیره می کنم توی جدول

ذخیره میشه، ولی کاراکترهای فارسی ببه هم میریزه! طبق تصویر پیوست

حالا میام نمایش بدم، مقدار ور از فیلد می گیرم و چاپ می کنم، همون کاراکتر چاپ میشه و معادل فارسی رو نشون نمیده
مورد دوم هم اینکه اگه برای ذخیره فارسی این کاراکترها توی جدول ذخیره بشه حجم جدول بالا میره چون برای یک کاراکتر فارسی 5 - 6 تا کاراکتر معادل ذخیره میشه


به نظرتون مشکل از کجاست؟؟؟ چرا پس فیلد های دیگه که دقیقا مثل این هستند مشکلی ندارند؟

ممنون میشم راهنمایی کنید

اگر تنظیمات دیتابیس روی UTF-8 هست و شما داری از سایت های دیگر مطلب بر می دارید اینها unicode شده هستند باید Encode , Decode کنید حل می شود

T.Toosi
March 6th, 2016, 12:22
سلام، چک کنید collation تیبل utf8 FA باشه.

salar123-user8
March 6th, 2016, 14:49
collation برو و اون سلول رو utf8_persian_ci تعریف کن.

این مشکل اکثرا از داخل کدنویسی هست اگه از داخل دیتابیس تغییر میدید فارسی مینویسه تو کد نویسی تغییر بدید.
یه دستور هست encod میکنه تو گوگل بگبردید هست.

iroo
March 6th, 2016, 21:23
mb_convert_encoding("ل&#1578", 'UTF-8');


نه

- - - Updated - - -

http://s7.picofile.com/file/8242136384/Untitledasdfadasd.png

نشد که نشد
دوستان خواهشا راهنمائی بفرمائید
نوشته در جدول ثبت شده، و این نوشته ها فارسی هستند
منتها موقع نمایش تبدیل به فارسی نمیشن و همینجوری نمایش داده میشه

چیکار کنم؟

ms313
March 9th, 2016, 18:49
در هنگام ایجاد دیتابیس به این نکات توجه کنید که باید کالکشن دیتابیستون در utf-8 genralci باشه
و در هنگام ایجاد جدول هم به این نکات توجه کنید کالکشن جدولتون هم utf-8 genralci باشه بهترهست خود فیلد هاتون هم رو همین ست شده باشه .
موفق باشید .

T.Toosi
March 9th, 2016, 18:57
mb_convert_encoding("ل&#1578", 'UTF-8');


نه

- - - Updated - - -

http://s7.picofile.com/file/8242136384/Untitledasdfadasd.png

نشد که نشد
دوستان خواهشا راهنمائی بفرمائید
نوشته در جدول ثبت شده، و این نوشته ها فارسی هستند
منتها موقع نمایش تبدیل به فارسی نمیشن و همینجوری نمایش داده میشه

چیکار کنم؟

من درست حرف های شما را متوجه نشدم، نوشته ها در دیتابیس فارسی نمایش داده میشوند اما هنگام فراخوانی به این شکل اینکد شده در می آیند ؟ محتویات فایلی که نمایش میدهید میتوانید قرار دهید ؟

esh
March 9th, 2016, 19:31
در هنگام خوانده و نوشتن تابع ذیل را فراخوانی کنید تا مشکل حل شود.

mysqli_set_charset($link, "utf8")

iroo
March 9th, 2016, 23:39
با تشکر از همه دوستانی که در این تاپیک شرکت کردن

نهایتا با تایع mb_decode مشکل حل شد و کاراکتر ها رو به فارسی برگردوند

با سپاس فراوان

- - - Updated - - -

راستی اینم بگن که شاید بعدا دوستی خواست بدونه

نوشته های من که فارسی بود میذاشتم توی یه متغییر و اونو ذخیره میکردم توی دیتابیس و توی دیتابیس فارسی نشون نمیداد و بصورت کاراکتر و * و ... نشون میداد
و لازمه که بگم utf8 کاملا توی تمامی موارد حتی کانکشت رعایت شده بود

و موقع نمایش محتویات جدول کاراکترها رو تو html نشون میداد
من تونشتم به کمک این تایع کارکترها رو به فارسی برگردونم و توی html نشون بدم