PDA

View Full Version : مشكل با unicode در MySQL



romixery
شنبه 07 شهریور 1388, 12:51 عصر
سلام، ازاونجايي كه اين مشكل، به بانك اطلاعاتي، و تنظيمات صفحه وب و از طرفي بانك اطلاعاتي من هم به PHP ربط داره، اين سوال رو اينجا مطرح كردم.

به مشکلی برخوردم که دیگه داره کلافم می کنه. یه صفحه وب ساختم که Style اون رو در یک فایل CSS اینگونه تنظیم کردم:



body{
font-family:Tahoma, Arial, "Times New Roman";
background-image:url(../Images/BGPattern.png);
text-align:right;
margin:0;
}
خوب، توی صفحه من کلمات فارسی به خوبی نمایش داده میشن و مشکل خاصی نیست. ولی حالا طرف دیگه قضیه یعنی دیتابیس:
دیتابیسی دارم که خواصیت کانکشنش رو اینجوری تنظیم کردم:



MySQL connection collation = UTF8_Persian_ci
یه دیتابیس توش دارم که اینجوری تنظیمش کردم:



Database collation = latin1_swedish_ciپنجتا جدولم توشه. جداول هم از همین collation‌هستن. یکی از اون جداول به نام Users هست و یه فیلدی به نام Username داره.
حالا من میام از داخل صفحه وبم،‌در قسمت ثبت نام، نامی رو به فارسی، مثلاً «مدیر»، وارد می کنم و به بانک می فرستم. وقتی میام توی phpMyAdmin تا محتویات بانک رو ببینم، می بینم که توی جدول Users، فیلد UserName، اومده حروف الکی مثل «Ù…دير» ریخته.وقتی، محتویات بانک رو صفحه وبم نمایش می دم، همه چیز درسته، ولی تو بانک خرابه. جالب اینکه وقتی اطلاعات رو توی خود phpMyAdmin به صورت دستی وارد می کنم، همه چیز توی بانک درسته،‌ درستم نشون میده، ولی دوباره توی صفحه وبم اشتباه نشون میده.
مطمئنم که مشکل از تنظیمات CSS صفحه وبم هست، مثل اینکه یونیکد نیست.
باید بگم خاصیت Database Collection رو به utf8_Persian_ci هم تغییر دادم و تغییری نکرد.
دوستان اگه بتونن کمکم کنن تا صفحه وبم هم مثل ، پایگاه داده، اطلاعات رو درست نمایش بده، ازشون ممنون میشم. نمي دونم اشكال از تنظيمات صفحه html‌منه يا php.
با تشکر

yasgig
شنبه 07 شهریور 1388, 14:04 عصر
latin1_swedish_ci رو از طریق phpmyadmin به UTF8_Persian_ci تغییر بده.حتما درست میشه.به طراحی سایت شما هم اصلا ربطی نداره.فقط مشکل از بانک اطلاعاتی هستش.
موفق باشید!

payamsp
شنبه 07 شهریور 1388, 15:33 عصر
مشكل از css نيست .
شما بايد بعد از برقراري ارتباط با ديتابيس كوئري زير رو هم اجرا كنيد تا مشكل حل بشه تا اطلاعاتي كه ثبت مي كنيد درست ثبت بشن .



mysql_query("SET CHARACTER SET utf8");
------------------------------------------------------------------------------------
www.webnevis.net