# پایگاه‌های داده > سایر پایگاه‌های داده > MySQL >  آقا با mysql فارسی نویسی مشکل دارم !

## arostama

سلام دوستان ، من با asp.net و mysql کار دارم ، ولی وقتی insertion را از طریق سایت انجام می دهم همه اونها علامت سوال می شوند .اگر میشه کمک کنین . شماره من : 88364017

----------


## oxygenws

دوست عزیز، نیازی به دادن شماره تلفن نیست.
مشکل شما مشکل انکودینگ است.
در 3 مکان/زمان انکودینگ مهمه:
1- زمان ورود داده.
2- مکان چاپ داده.
3- انکودینگ فیلد ها و جداول خود بانک.
(البته ممکنه داده ها این وسط توسط برنامه های واسط دستکاری بشن)

این اشکال شما ظاهرا بر می گرده به انکودینگ فیلد های بانکتون، اگر بتونید خروجی mysqldump (sql) بانکتون و اطلاعاتی در مورد نسخه بانکتون و ... رو اینجا بنویسید بد نیست.

----------


## arostama

salam ,mamnoon as pasokhetoon ,agha ,man rooyeh mysql servereh khodam hich moshkeli nadaram ,chon default charseteh databasam utf8 e va collationesh utf8_general_ci hast ,vali vaghty database ro copy mikonam roo host ,chon charseteh host ro nemitoonam taghir bedam oon vaghteh ke moshkel ijad misheh, man kolleh site ro utf8 zadam,mogheyeh insertion ham as "N" barayeh unicode estefadeh mikonam,in jarian barayeh man kheily hayatieh ,barayeh hamin shomareh tel dadam, ageh misheh komakam konin

----------


## arostama

من تونستم charseteh server ro avaz konam ,vali nemidoonam ba che halati insertion ro anjam bedam ke injoori nasheh ,mamnoon misham

----------


## oxygenws

اگر دسترسی root نداری، با PHP خودت یه برنامه ساده بنویس. (از phpmyadmin استفاده نکن)

----------


## kochol

سلام
آقا نوع انکودینگ فیلدها باید چی باشه.

----------


## reza_rad

bebin man ham in moshkel ro ba mysql va .NET dashtam
codepage e safhe haa ro utf-8 kon
in taa hodoodi halesh mikoni
vali age bekhay az sahe haaye php bekhounish baz ?????? mideh biroon
dalilesh ham ine ke php ba ye function htmlentities in kar ro mikoneh ke kheili ghavi ye
vali touye .NET ma ino nadarim

movafagh bashi

----------


## delphi77

آقای مدیر چرا اینجا همه فینگلیش می نویسن آخه؟؟

----------


## delphi77

من در آپاچی phpadmin کدپیج database و table و field را همه utf8_general_ci گذاشتم و در app.web کدپیج صفحه را 
<meta http-equiv="content-type" content="text/html; charset=utf-8">
تعیین کردم ولی متاسفانه در هر کدام که فارسی می نویسم در دیگری نادرست می بینم

----------


## reza_rad

تنظیمات windows  رو باید تغییر بدی.توی language .

----------


## delphi77

> تنظیمات windows رو باید تغییر بدی.توی language .


این که می گی را لطفا بیشتر توضیح بدید

----------


## reza_rad

[QUOTE=delphi77]


> تنظیمات windows رو باید تغییر بدی.توی language .
> [quote/]
> این که می گی را لطفا بیشتر توضیح بدید


منظورم تنظیمات regional setting توی ویندوز برای انتخاب زبان بود که باید فارسی بشه. چون من هم همین مشکل رو داشتم و اینجوری حل شد.
البته به نوع کانکشن به دیتابیس هم مربوطه.

----------


## delphi77

> البته به نوع کانکشن به دیتابیس هم مربوطه.


تنظیمات ویندورز من درسته ولی مشکل دارم

----------


## mahdieh_khatibi

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

----------


## delphi77

آقایون با فارسی چه باید کرد؟

----------


## sally

سلام خواهش می کنم  یک متخصص تو ضیح بده با utf8 چه کنیم (my sql) طوری بگین که ما بی سواد ها هم بفهمیم.شنبه باید سایت را تهویل بدم. به داد من برسید.ممنون

----------


## reza_rad

البته من متخصص نیستم ولی یه چیزهایی می دونم...

برای فارسی در mysql چند مورد باید رعایت بشه:

1- پشتیبانی از locale فارسی در ویندوز(البته اگه از ویندوز استفاده می کنید) یعنی تنظیمات language ویندوزتون رو فارسی کنید.
2- codepage صفحات وب که interface شما هستند بین شما و دیتابیس.(البته اگه وب کار میکنید)
3- collation دیتابیس و جداول که بهتره utf8 باشه(البته بدون این هم میشه چون من با یه collation دیگه فارسی کار می کنم!)
4- نوع ارتباط به دیتابیس(بعضی از کانکشن ها تنظیماتی برای charset=utf8 داره)

----------


## sally

سلام 
(بعضی از کانکشن ها تنظیماتی برای charset=utf8 داره) کدوم  کانکشن ها ؟؟؟؟
قضیه collation  چبه؟؟(گفتم که بی سوادم)
ممنونم

----------


## reza_rad

راستش کانکشنی که من باهاش کار می کنم تنظیماتی برای utf8 نداره ولی یکبار شنیدم که یکی می گفت odbc connection به mysql یه جایی داره که میگید charset=utf8 .

collation هم همون charset هست. توی mysql به این اسم اومده.

----------


## pcseven

من از xampp استفاده می کنم. داده هایی که بصورت دستی از phpmyadmin وارد می کنم در phpmyadmin فارسی نمایش داده میشه اما وقتی که با توابع mysql_connect , mysql_query به بانک وصل می شم و داده ها رو می خونم بصورت ؟؟؟؟؟ نمایش داده میشن!
احتمالاً یه جایی باید charset مربوط به connection رو تعریف کنیم . کسی از دوستان اطلاعی در این مورد نداره ؟

----------


## pcseven

فهمیدم !!!  :لبخند گشاده!:  
بعد از اتصال به بانک ، کد زیر را اضافه کنید : 
mysql_query('SET NAMES utf8');
منبع : http://drupal.org/node/26990

----------


## delphi77

دوستان یکی که قبلا این مشکل را داشته و حلش کرده لطفا کمک کنه

----------


## pouriams

> فهمیدم !!!  
> بعد از اتصال به بانک ، کد زیر را اضافه کنید : mysql_query('SET NAMES utf8');
> منبع : http://drupal.org/node/26990



من که هر چی کلنجار رفتم نتونستم درستش کنم، اگه میشه اطلاعات کامل‌تری بدهید و یا تکه کد خودتان را بگذارید.

----------


## pouriams

بین آقایون و خانم‌ها کسی نبود جواب ما رو بده؟
موندیم رو هوا کمک...



------------------
هر چه گشتیم در این شهر نبود اهل دلی

----------


## reza_rad

> من که هر چی کلنجار رفتم نتونستم درستش کنم، اگه میشه اطلاعات کامل‌تری بدهید و یا تکه کد خودتان را بگذارید.


از چه محیطی به mysql  دیتا میریزید؟
با چه  collation  ای؟

----------


## pouriams

اون مشکل برطرف شد (انکودینگ صفحه را درست کردم درست شد) ولی الان یه مشکل دیگه هست. اونم اینه که زمانی که از طریق برنامه تو دیتابیس اطلاعات بریزم و از طریق برنامه بخونم درسته. اگر خودم برم تو دیتابیس را ببینم اون‌وقت حروف را به صورت زبان ماشین نشان می‌دهد
در ضمن اگر دستی یک رکورد تو بانکم درست کنم و نمایش دهم. همشو به صورت علامت سؤال نشون می‌ده.

----------


## pouriams

راستی یادم رفت بگم من با net. برنامه نویسی می‌کنم و دیتابیسم هم Mysql5 هست. در ضمن دیتابیس‌ام هم encoding اش را utf8 گذاشتم و همچنین صفحه‌ی net. ام را.

----------


## reza_rad

> زمانی که از طریق برنامه تو دیتابیس اطلاعات بریزم و از طریق برنامه بخونم درسته


پس کلا مشکلی وجود نداره دیگه...
چون شما هم میتونید بنویسید و هم بخونید. پس مشکلی برای فارسی کار کردن ندارید!




> اگر خودم برم تو دیتابیس را ببینم اون‌وقت حروف را به صورت زبان ماشین نشان می‌دهد


یعنی چی زبان ماشین؟! مسلما منظورتون صفر و یک نیست! فکر کنم کد اسکی می بینید...؟

----------


## pouriams

منظورم همون کد اسکی بود (حالا شما دیگه گیر نده).
من دیتابیس یک برنامه دیگر را دیدم، توی دیتابیس‌اش هم فارسی بود (البته اون با جاوا نوشته شده بود). فکر کنم یه جایی یه کاری باید انجام بدم که ندادم. (مثلا برای فیلدهایی که ارسال می‌کنم encoding تعریف کنم یا همچین چیزی).

----------


## mohsenna30ri

*ببین این راه حل بدردت می خوره فکر کنم بد نباشد : 
https://barnamenevis.org/showthread.php?t=55431
*

----------


## mehran_337

این لینک کار نمی کنه.
من همه کار کردم : 
درموقع آپلودفایل در PHPmyadmin فرمت utf-8 رو انتخاب کردم. اما همه کارکتریها ؟؟؟؟ هست.
collection را به همه نوع تغییر دادم 3 فیلد کارکتری با 3 فرمت مختلف گفتم شاید یکی جواب بده.
گفتم شاید در انجا بد نشون بده بره تو وب خوب می شه :
در فایل اصلیم

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

گذاشتم اما نشد .

بعد از کانکت دستور :

mysql_query("SET CHARACTER SET utf8", $connect);
mysql_query("SET NAMES 'utf8'", $connect);

را اجرا کردم بازم نشد.
همه اطلاعات کارکتری ؟؟؟؟؟؟ نمایش داده می شه.

اگه ممکنه راهنماییم کنید .... :ناراحت:

----------


## reza_rad

علامت ؟؟؟؟؟؟ به معنای اینه که دیتاهای شما با collation  اشتباه به دیتابیس وارد شده. با هر collation  ای هم که بخونیدش درست نمیشه.
مشکل شما توی ورود داده هست نه توی نمایش اون.

فکر کنم regional setting  سیستمتون باید اصلاح بشه...
از ویندوز استفاده می کنید؟

----------


## mehran_337

بله از ویندوز استفاده می کنم.

----------


## mehran_337

راستی یونیکد  فایل sql من عربی هستش نمی دونم چرا اما از اکسس تبدیلش کردم اینطوری شده.
حالا وقتی دارم آپلودش می کنم utf-8 داره اما عربی  نداره چیکار کنم.؟
به قول دوستمون همه کالکشنهارو امتحان کردم درست نشد.

----------


## reza_rad

> بله از ویندوز استفاده می کنم.


برید توی کنترل پنل
Regional and language option
توی تب سوم یعنی advanced 
اونجا توی کومبو باید Farsi رو انتخاب کنید.

----------


## pouriams

من همه این کارها را انجام دادم. utf-8 را هم انتخاب کردم. در صفحه net. هم encoding‌صفحه را utf-8 گذاشتم. ویندوزم هم فارسی است و .... اما بازهم وقتی از داخل query browser به رکوردهام نگاه می کنم درست نشون نمی ده. و وقتی دستی هم وارد دیتابیس می کنم آنوقت در وب سایتم درست نشون نمی ده.
چه راهی داره؟  :خیلی عصبانی:

----------


## Nightbat

آقا چرا این بحث اینجا نصفه مونده، یعنی همه مشکلشون حل شده ؟ اگه اینطوره یکی بگه چیکار کرده

----------


## delphi77

تو نسخه جدید مشکل حل شده

----------


## marmar

سلام 
منم همین مشکل رو دارم میشه بگید تو تنظیمات language کجا رو باید چی set کنم؟ یعنی کلا تو این قسمت چی کار باید بکنم

----------


## scorpion_man

> سلام دوستان ، من با asp.net و mysql کار دارم ، ولی وقتی insertion را از طریق سایت انجام می دهم همه اونها علامت سوال می شوند .اگر میشه کمک کنین . شماره من : 88364017


با سلام دوست عزیز 
من هم یه 1 هفته ای مشکل تو رو داشتم و به هر دری سر زدم اما هیچ کدوم جواب نداد و مشکل از زبان default ویندوزه که باید فارسی بشه اما شما نمیتونی به وب سرور بگی که زبان default رو تغییر بدن و آخر سر مشکل و اینطوری حل کردم و عالی داره کار میکنه باید کامپوننت درایوری که برای .net نوشتن و روی سایت mysql.com هم هست بگیری و دانلود بکنی و همه کاراتو با اون بکنی و آخر سر یه dll داره اونو رو سرورت رو مسیر bin آپلودش بکن
البته 1-باید collation های table رو utf8_persian بزاری و 
2- زمان تعریف connection string حتما utf8 بودن داده رو اشاره بکنی که تو help ش خودش گذاشته
و خیلی عالی کار میکنه البته رو asp.net 2 تست شده و ok
موفق باشی

----------


## scorpion_man

> من همه این کارها را انجام دادم. utf-8 را هم انتخاب کردم. در صفحه net. هم encoding‌صفحه را utf-8 گذاشتم. ویندوزم هم فارسی است و .... اما بازهم وقتی از داخل query browser به رکوردهام نگاه می کنم درست نشون نمی ده. و وقتی دستی هم وارد دیتابیس می کنم آنوقت در وب سایتم درست نشون نمی ده.
> چه راهی داره؟


آقا شما فقط همون راهو داری من 1 هفته الافش بودم خودتو خسته نکن این راه گارانتی داره
و چندین بار تست شده و الانم رو چندین سایت داره کار میکنه من خودم گارانتی میدم اگه نتونستی برات source هم میزارم ولی خیلی آسونه مثل کار با sql server با ado هست و تمامی کلاساش عین اونه
موفق باشی

----------


## pooya1037

بعد از دستور  mysql_connect('','','' ) دستور  زیر را بنویسید
mysql_query('set names utf8')
(اخری باید به بعد ارutf8منتقل شود
البته توی data base هم باید utf8_persin_ic باشد

----------


## rostamiani

> بعد از دستور  mysql_connect('','','' ) دستور  زیر را بنویسید
> mysql_query('set names utf8')
> (اخری باید به بعد ارutf8منتقل شود
> البته توی data base هم باید utf8_persin_ic باشد


خیلی ممنونم
کارم رو راه انداختید

----------


## enteraks13

> فهمیدم !!!  
> بعد از اتصال به بانک ، کد زیر را اضافه کنید : 
> mysql_query('SET NAMES utf8');
> منبع : http://drupal.org/node/26990


 


خیلی خیلی خیلی ممنون شما مشکل من رو حل کردید و باعث شدید من هم عضو این تایپیک بشم  :تشویق: 
بازم ممنون :قلب:

----------


## mehdimaleki04

*pcseven جان ممنون

مشکل من هم با همین کد حل شد * 

خیلی آقایی  :قلب:  :قلب:  :قلب:  :قلب:  :قلب:

----------


## hamid67fathi

سلام
اين موردی که گفتيد درسته اما يه مشکلی داره 
اونم اينه که حرف ف رو درست چاپ نميکنه !!

----------


## zreali

> بعد از دستور  mysql_connect('','','' ) دستور  زیر را بنویسید
> mysql_query('set names utf8')
> (اخری باید به بعد ارutf8منتقل شود
> البته توی data base هم باید utf8_persin_ic باشد


آقا به خدا من همه ی این کار ها رو کردم
درست نشد :گریه:  :گریه:  :گریه:  :گریه:  :گریه: 

رو local همه چی اوکیه ولی رو هاست نمی شه تو بانک داده ی فارسی وارد کرد البته تو خود phpmyadmin میشه ولی با کدی که خودم نوشتم نمیشه همه اش ؟؟؟؟ یفرسته :گیج:  :گیج: 

کمکم کنید :گریه:  :گریه:  :گریه:  :گریه:  :گریه:

----------


## raha_1362

unicode صفحه رو utf8  كن
اين كدها را بعد از انتخاب ديتابيس بذار
mysql_select_db($dbname);
mysql_query("SET CHARACTER SET utf8");   
mysql_query("SET NAMES utf8_persian_ci"); 
موقع درج هم به اين صورت درج كن    'نام فيلد' N

----------


## hdhamedmailhd

اگه از asp.net استفاده می کنی از کد زیر استفاده کن.
 conn.ConnectionString = "Server=xxxxxxxxxx;Uid=xxxxxxxxxx;Pwd=xxxxxxx;Data  base=hd;charset=utf8;"
چون واسه نمایش حروف فارسی باید کدگذاری روی utf8 باشه پس charset=utf8 رو به آخر ConnectionString اضافه می کنیم.به همین راحتی!!!!!

----------


## shariati-it

مشکل منهم با این کد حل شد ممنون
mysql_query('SET NAMES utf8');

----------


## moheb1

خیلی ممنونم
منم این مشکل (؟؟؟؟...)رو داشتم , با کاری که شما گفتی مشکلم حل شد.

----------


## zahramehdi

سلام  در sql express چی جوری باید فیلدهارو فارسی تعیین کرد؟

----------


## moheb1

مشکل منم با همین کد حل شد
خیلی ممنونم



> فهمیدم !!!  
> بعد از اتصال به بانک ، کد زیر را اضافه کنید : 
> mysql_query('SET NAMES utf8');
> منبع : http://drupal.org/node/26990

----------


## h_m_mood

سلام دوست عزیز مشکلت با این کار حل میشه باید وقتی اطلاعات رو میفرستی به دیتا بیس یونیکدشو utf8 کنی برای این کار بعد کد انتخاب دیتابیس کد زیر رو اضافه کن مشکلت حل میشه
mysql_set_charset("utf8",$dblink)    //انتخاب یونیکد مورد نظر از طریق روشی که به هاست و دیتابیس وصل شدیم
میتونی  به لینک زیرهم بری
http://moodprogrammer.mihanblog.com/post/5

----------

