PDA

View Full Version : سوال: select با مقادیر فارسی در mysql



IranVisual
چهارشنبه 22 اردیبهشت 1389, 14:31 عصر
سلام شاید سوال من ربطی به این بخش نداشته باشه
من یه فوروم vBulletin رو سرور نصب کردم که با بانک mysql کار میکنه حالا تو یه صفحه که با asp.net نوشتم میخوام بعضی از مقادیر این بانک رو بخونم ولی چون فارسی وارد شدن فارسی ها رو به صورت حروف های عجیب نشون میده مثل این
کاریکاتور خنده دار جنبش سبز
میخواستم بدوم باید چی کار کنم که این مشکل برطرف بشه

Reza1607
چهارشنبه 22 اردیبهشت 1389, 14:42 عصر
باید بعد از اتصال به بانک کوئری زیر رو اجرا کنی
SET NAMES 'utf8'

IranVisual
چهارشنبه 22 اردیبهشت 1389, 15:09 عصر
میشه select کامل رو بزارید
ممنون

morteza271
چهارشنبه 22 اردیبهشت 1389, 15:15 عصر
باید بعد از دستور

mysql_conect();
کد

mysql_query("SET NAMES 'utf8'");
رو بذاری...

IranVisual
چهارشنبه 22 اردیبهشت 1389, 15:17 عصر
خیلی ممنون از جوابتون ولی من از php استفاده نمیکنم من یه دونه query نوشتم که اطلاعات رو توی grid نمایش بدم که اینجوری شده دقیقا من اینجوری نوشتم
select Title From Thread
حالا رو این کوئری میتونم مثال بالای رو پیاده کنم

Reza1607
چهارشنبه 22 اردیبهشت 1389, 15:26 عصر
دوست عزیز قبلا از این که این کوئری
select Title From Thread
رو اجرا کنی کوئری
SET NAMES 'utf8' رو مثل کوئری بالا اجرا کن یادت باشه که این کوئری نتیجه ای رو برنمی گردونه

IranVisual
چهارشنبه 22 اردیبهشت 1389, 15:32 عصر
SET NAMES 'utf8'

این NAMES تو MySql معرفی شده هست یا باید اسم فیلدها رو بزارم مثلا
set title 'utf8'

IranVisual
چهارشنبه 22 اردیبهشت 1389, 15:45 عصر
اینو امتحان کردم درست نشد


MySqlCommand gg = new MySqlCommand("SET NAMES 'utf8'", msnn);
if (msnn.State == ConnectionState.Open)
{
msnn.Close();
}
msnn.Open();
gg.ExecuteNonQuery();
//
MySqlDataAdapter msc = new MySqlDataAdapter("select * from thread order by views desc LIMIT 10 ", msnn);
DataSet ds = new DataSet();
msc.Fill(ds, "thread");
GridView1.DataSource = ds.Tables["thread"];
GridView1.DataBind();
msnn.Close();

جای NAMES اسم فیلد رو هم آوردم بازم همون بود

Reza1607
چهارشنبه 22 اردیبهشت 1389, 16:40 عصر
ببین colletion جدول هات general_utf8_persian هست یا نه؟ اگر نبود اول colletion رو تغییر بده دوباره امتحان کن اگه نشد دیگه من شرمنده ام نمی دونم چیکار کنی البته فکر کنم قبلا این موضوع بحث شده اگر جستجو کنی فکر کنم به نتیجه برسی

IranVisual
چهارشنبه 22 اردیبهشت 1389, 16:54 عصر
جستجو کردم
بانک Mysql من همین بانک فوروم vBulletin هس که تو همین سایت ازش استفاده شده

rapidpich
چهارشنبه 22 اردیبهشت 1389, 22:04 عصر
فکر کنم تو فروم .net بپرسی بهتر باشه. گرچه بعید میدونم کسی mysql کار کرده باشه.
تو php با این کوری درست میشه. جای NAMES نباید چیز دیگه ای بگذاری همین درسته. مطمئنی encoding صفحه ات درسته؟

Reza1607
پنج شنبه 23 اردیبهشت 1389, 09:14 صبح
البته من فکر کنم دیگه نمی شه کاریش کرد و باید اطلاعات رو از اول وارد کنید
البته به شما توصیه می کنم که این راه حل رو به عنوان آخرین راه حل انجام بده

Reza1607
شنبه 25 اردیبهشت 1389, 13:35 عصر
دوست عزیز IranVisual فکر کنم آقای امیر حسین این مشکل رو حل کردند شما می تونید لینک برنامه ی تبدیل کارکتر های عجیب به کارکترهای واقعی رو از امضای ایشون پیدا کنید

Reza1607
شنبه 25 اردیبهشت 1389, 13:36 عصر
براتوت لینکش رو هم می ذارم

http://boplo.ir/php/western-iso-to-persian/