برگزیده های پرشین تولز

چجوری میشه مشکل انکودینگ رو اساسی برطرف کرد ؟

omid020

کاربر تازه وارد
تاریخ عضویت
29 آگوست 2006
نوشته‌ها
32
لایک‌ها
0
سلام:D :(

سلام تو خیلی از اسکریپت ها مثل خبرنامه وقتی متنی می نویسی
و اونو تو دیتابیس ذخیره می کنی می بینی که به هم می ریزه و
تمام حروف به کاراکترهای نامشخص تبدیل میشند . ولی وقتی فرضاً با
PHPMYAdmin میری تو دیتابیس و اون فیلد رو ویرایش می کنی و همون جا
فارسی می نویسی و ذخیرش می کنی و به محیط اسکریپت برمی گردی می بینی
که همه چیز درسته و متن به زبان فارسی قابل مشاهده است .
می خواستم بدونم چه چیز هایی باعث میشند که این اتفاق بیفته .
مثلا چی باعث این میشه که کاراکترهای زیر در دیتابیس که برای نمایش به صورت
فارسی مناسب هستند ،
نوار نقاله
( ببخشید کدش رو به صورت UNICODE گذاشتم ولی اینجا و تو این پست خودش شد نوار نقاله که نمایش فارسیشه )
به کاراکتر های زیر تبدیل بشند که نمی تونند حروف فارسی رو به خوبی در مرورگر ها نمایش بدند .
%u0627تفاق
جالب اینجاست که وقتی کاراکترهای زیر رو
نوار نقاله
( ببخشید کدش رو به صورت UNICODE گذاشتم ولی اینجا و تو این پست خودش شد نوار نقاله که نمایش فارسیشه)
در ادیتور اسکریپت پیست می کنی و دوباره ذخیره می کنی به کاراکتر های زیر تبدیل میشند :
&amp;#1606;&amp;#1608;&amp;#1575;&amp;#1585; &amp;#1606;&amp;#1602;&amp;#1575;&amp;#1604;&amp;#1607; &amp;#1740; &amp;#1605;&amp;#1575; &amp;#1576;&amp;#1575;&amp;#1588;<br />
. کسی میتونه کمکم کنه که اینجور مشکلات رو راحت حل کنم ؟
 

omid020

کاربر تازه وارد
تاریخ عضویت
29 آگوست 2006
نوشته‌ها
32
لایک‌ها
0
تصویر کاراکترهای یونیکد رو پیوستش کردم تا راحت تر بفهمید چی می گم .
رو تصویر ریز زیر کلیک کنید تا بزرگ شدش رو ببینید .

unicode.jpg
 

firebird

Registered User
تاریخ عضویت
2 جولای 2005
نوشته‌ها
1,424
لایک‌ها
10
سن
46
یه احتمال اینه که اسکریپت شما توش htmlentities یا توابع مشابه اون به کار رفته باشه.
 

omid020

کاربر تازه وارد
تاریخ عضویت
29 آگوست 2006
نوشته‌ها
32
لایک‌ها
0
راستش از ادیتور tinymce استفاده می کنه حالا نمی دونم htmlentities هم توش هست یا نه .
 

omid020

کاربر تازه وارد
تاریخ عضویت
29 آگوست 2006
نوشته‌ها
32
لایک‌ها
0
کسی نمیتونه کمکی کنه ؟
 

alik

کاربر قدیمی پرشین تولز
تاریخ عضویت
23 سپتامبر 2005
نوشته‌ها
2,146
لایک‌ها
1,232
صفحه شما باید انکودینگش UTF-8 باشه که برای این باید متا تگ بالا صفحه بزاری (منظور از صفحه جایی هست که فرم شما داخلش فارسی نوشته میشه و بعد ارسال میشه)

بنظرم مشکلی اصلیت همین اولی هست ولی بقیه رو هم بخون رعایت کن :

داخل دیتابیس برای فیلدهایی که میخوای متن ذخیره کنی از Collation با utf_general_ci و utf_persian_ci استفاده کن

اگر سرور mysql بصورت پیش فرض utf کانکت نمی کنه حتما بعد از کانکت به دیتابیس با یک query دستور set names utf8 را بفرست تا دچار مشکل کانورت اتوماتیک mysql نشی
 
بالا