مشکل نمایش فارسی در mysql
با عرض سلام و خسته نباشید به همه برو بچ پر تلاش این بخش و تمام بخش های سایت ، یه مشکلی برام پیش اومده نیاز به یک راه حل دارم :
سلام
من Collation ديتابيس رو در PHPMyAdmin
utf8_persian_ci انتخاب كردم ولي وقتي
يك داده به زبان فارسي از طريق اسكريپتم در ديتابيس ذخيره
مي كنم ، به حروف نامعلومي تبديل ميشه
و حتي در phpMyAdmin هم به صورت فارسي ديده
نميشه!
مثلاً اين شكلي ديده ميشه : نقل قول:
ضد ØØ±ÛŒÙ‚
وقتي داده رو از طريق صفحه وب اسكريپتم لود مي كنم به زبان فارسي
به خوبي ديده ميشه و فقط در PHPMyAdmin و Mysql عجيب غريب ديده
ميشه! پس اين Collation به چه درد ميخوره! http://forum.majidonline.com/majidon...online_sad.gif
من ميخوام از طريق ODBC داده هاي Mysql رو تو Excel
لود كنم و الان با اين شرايط تمامي كلمات فارسي با همون
حروف نامأنوس در Excel لود ميشن (دقيقاً همونجور كه در Mysql
يا phpMyAdmin ديده ميشن)
راهي نيست كه كاراكترهاي فارسي در Mysql ، بدون تبديل شدن
به كاراكتر ديگري به همون شكل فارسي خودشون ذخيره بشن ؟
اصلاً چنين چيزي امكان داره ؟
:متعجب:
نقل قول: مشکل نمایش فارسی در mysql
بعد از اینکه کانکت شدی به mysql و دیتابیست رو سلکت کردی این کد ها رو زیرش بنویس
mysql_query("SET NAMES utf8");
mysql_set_charset("utf8");
نقل قول: مشکل نمایش فارسی در mysql
دوست عزیز
در فولدر phpMyAdmin در فولدر libraries فایل database_interface.lib.php را باز کنید و کد:
if (! empty($GLOBALS['collation_connection'])) {
PMA_DBI_query("SET CHARACTER SET 'utf8';", $link, PMA_DBI_QUERY_STORE);
$mysql_charset = explode('_', $GLOBALS['collation_connection']);
PMA_DBI_query("SET collation_connection = '" . PMA_sqlAddslashes($GLOBALS['collation_connection']) . "';", $link,
PMA_DBI_QUERY_STORE);
} else {
PMA_DBI_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci';", $link, PMA_DBI_QUERY_STORE);
}
پیدا و کامنت کنید.
در نسخه های قدیمی تر فقط این کد ها را کامنت کنید:
PMA_DBI_query("SET collation_connection = '" . PMA_sqlAddslashes($GLOBALS['collation_connection']) . "';", $link,
PMA_DBI_QUERY_STORE);
PMA_DBI_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci';", $link, PMA_DBI_QUERY_STORE);
نقل قول: مشکل نمایش فارسی در mysql
سلام
تابع PMA_DBI_query چیست؟:متفکر:
متشکرم
نقل قول: مشکل نمایش فارسی در mysql
این تابع یکی از متد های استفاده شده در برنامه phpmyadmin هست و از توابع خود php نیست
نقل قول: مشکل نمایش فارسی در mysql
ببخشید آقای مدیر
نقل قول:
در فولدر phpMyAdmin در فولدر libraries فایل database_interface.lib.php را باز کنید و کد
من منظورتون رو از فولدر نفهمیدم
این تنظیم رو تو phpmy admin روی هاست داریم یا localhost
اگر روی هاست همچین کاری باید انجام بدیم میشه راهنمایی کنید که باید کجا بریم
نقل قول: مشکل نمایش فارسی در mysql
توی لوکال هم دارید به شرطی که از نرم افزار های wampp lampp xampp و.. استفاده کرده باشید یا phpmyadmin رو جدا نصب کرده باشید
نقل قول: مشکل نمایش فارسی در mysql
نه من منظورم دقیقا برعکس بود
من از کجای هاستی با cpanel به فولدر phpmyadmin برم
یعنی چطور تنظیماتی که گفته شده رو تو cpanel اعمال کنم
نقل قول: مشکل نمایش فارسی در mysql
تو هاست شما دسترسی ندارید و فقط ادمین سرور دسترسی داره
نقل قول: مشکل نمایش فارسی در mysql
پس با این حساب مشکل ؟؟؟ به جای فارسی راه حلی نداره !
چون من هر چی تو این فروم گفته شده اعمال کردم اما نشد که نشد
راستی من دارم از یه برنامه تحت ویندوز (.Net) به بانک my sql روی هاست اطلاعات اضافه می کنم
نقل قول: مشکل نمایش فارسی در mysql
شما اگه صفحت رو utf-8 ذخیره کرده باشید و collation تیبل هاتون رو utf8_persian_ci بگزارید و اون 2 خط کد که دادم رو هم بعد از اتصال به دیتبایس بگزارید هم توی phpmyadmin هم توی برنامه فارسی و قابل خواندن میشود
1 ضمیمه
نقل قول: مشکل نمایش فارسی در mysql
سلام دوست عزیز ، ممنون از توجهت به تاپیک
متاسفانه این مشکل چند روزی است کل وقتم رو گرفته و به نتیجه ای نمیرسه
ببینید ، من تمام مواردی که گفتید رو انجام ، اون دو تا کد رو با روش .net نوشتم
حتی تک اونها رو هم امتحان کردم (برای جلوگیری ار خنثی کردن اثر هم) و یه خط کد(کانکشن) رو هم اضافه کردم
این کدهام است که به زبان vb.net نوشته شده
For i = 0 To Val(stutable.Rows.Count) - 1
'------------------------------------
Dim objComm1 As MySqlCommand = New MySqlCommand()
objComm1.Connection = webcon
objComm1.CommandText = "SET character_set_connection='utf8'"
'------------------------------------
Dim objComm2 As MySqlCommand = New MySqlCommand()
objComm2.Connection = webcon
objComm2.CommandText = "SET NAMES 'utf8'"
'------------------------------------
Dim objComm3 As MySqlCommand = New MySqlCommand()
objComm3.Connection = webcon
objComm3.CommandText = "SET CHARACTER SET 'utf8'"
'---------------------§«¢ي© ي©ي§ §ں§ى ىں----------------
Dim objCommandp As MySqlCommand = New MySqlCommand()
objCommandp.Connection = webcon
objCommandp.CommandText = "INSERT INTO stuinfo(idstu,namestu,idnum,sexstu) VALUES(@idstu,@namestu,@idnum,@sexstu)"
objCommandp.Parameters.AddWithValue("@idstu", stutable.Rows(i).Item("id"))
objCommandp.Parameters.AddWithValue("@namestu", stutable.Rows(i).Item("name") + "-" + stutable.Rows(i).Item("family"))
objCommandp.Parameters.AddWithValue("@idnum", CStr("N" & stutable.Rows(i).Item("fname")))
objCommandp.Parameters.AddWithValue("@sexstu", "ë§ں©§")
webcon.Open()
objComm1.ExecuteNonQuery()
objComm2.ExecuteNonQuery()
objComm3.ExecuteNonQuery()
objCommandp.ExecuteNonQuery()
webcon.Close()
Next i
حال در اینطرف قضیه یعنی نمایش روی وب
صفحه رو با utf-8 ذخیره کردم (تو نت پد با زکردم و ...)
ابتدای صفحه کد مربوط به charset رو utf گذاشتم
تمام بانک، جدول و فیلدها رو به کلکشن گفته شده درآوردم
و این هم فیلدهام که تو my sql گذاشتم (سعی کردم از هر نوعی بزارم تا شاید جواب بده)
https://barnamenevis.org/attach...1&d=1289495040
و در نهایت این هم نتیجه خروجی :
http://www.afc90.ir/test.php
نقل قول: مشکل نمایش فارسی در mysql
امبدورا وار بودم از اساتید یا جناب funpatogh کسی به دادم برسه تا شاید این مشکل رو حل کنم
حتما راه و چاره ای داره این مشکل
نقل قول: مشکل نمایش فارسی در mysql
اخه عزیز شما کدهاتون به زبان php نیست که بخوام تستش کنم و من سر رشته به vb.net ندارم
نقل قول: مشکل نمایش فارسی در mysql
شرمنده
طرف وب رو ببینید درست تنظیم شده
و یه سوال
میشه طرف وب رو طوری تنظیم کرد که قبل از هر ورود داده خودش این دو خط کد (set names utf , ....) رو اجرا کنه (مثل sql )