PDA

View Full Version : آقا با mysql فارسی نویسی مشکل دارم !



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

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

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

arostama
پنج شنبه 21 مهر 1384, 16:25 عصر
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
جمعه 22 مهر 1384, 11:56 صبح
من تونستم charseteh server ro avaz konam ,vali nemidoonam ba che halati insertion ro anjam bedam ke injoori nasheh ,mamnoon misham

oxygenws
جمعه 22 مهر 1384, 20:22 عصر
اگر دسترسی root نداری، با PHP خودت یه برنامه ساده بنویس. (از phpmyadmin استفاده نکن)

kochol
پنج شنبه 08 دی 1384, 14:01 عصر
سلام
آقا نوع انکودینگ فیلدها باید چی باشه.

reza_rad
پنج شنبه 08 دی 1384, 14:14 عصر
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
یک شنبه 16 بهمن 1384, 14:18 عصر
آقای مدیر چرا اینجا همه فینگلیش می نویسن آخه؟؟

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

reza_rad
یک شنبه 16 بهمن 1384, 15:51 عصر
تنظیمات windows رو باید تغییر بدی.توی language .

delphi77
شنبه 29 بهمن 1384, 19:25 عصر
تنظیمات windows رو باید تغییر بدی.توی language .

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

reza_rad
یک شنبه 30 بهمن 1384, 09:50 صبح
[quote]
تنظیمات windows رو باید تغییر بدی.توی language .
[quote/]
این که می گی را لطفا بیشتر توضیح بدید

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

delphi77
یک شنبه 30 بهمن 1384, 15:25 عصر
البته به نوع کانکشن به دیتابیس هم مربوطه.

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

mahdieh_khatibi
دوشنبه 01 اسفند 1384, 23:57 عصر
سلام
چه جوری باید بفهمیم که اینکودینگ فیلدها چیه؟

delphi77
پنج شنبه 04 اسفند 1384, 12:02 عصر
آقایون با فارسی چه باید کرد؟

sally
دوشنبه 08 اسفند 1384, 23:29 عصر
سلام خواهش می کنم یک متخصص تو ضیح بده با utf8 چه کنیم (my sql) طوری بگین که ما بی سواد ها هم بفهمیم.شنبه باید سایت را تهویل بدم. به داد من برسید.ممنون

reza_rad
سه شنبه 09 اسفند 1384, 08:04 صبح
البته من متخصص نیستم ولی یه چیزهایی می دونم...

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

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

sally
پنج شنبه 11 اسفند 1384, 09:33 صبح
سلام
(بعضی از کانکشن ها تنظیماتی برای charset=utf8 داره) کدوم کانکشن ها ؟؟؟؟
قضیه collation چبه؟؟(گفتم که بی سوادم)
ممنونم

reza_rad
شنبه 13 اسفند 1384, 09:59 صبح
راستش کانکشنی که من باهاش کار می کنم تنظیماتی برای utf8 نداره ولی یکبار شنیدم که یکی می گفت odbc connection به mysql یه جایی داره که میگید charset=utf8 .

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

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

pcseven
چهارشنبه 17 خرداد 1385, 11:14 صبح
فهمیدم !!! :لبخند:
بعد از اتصال به بانک ، کد زیر را اضافه کنید :

mysql_query('SET NAMES utf8');
منبع : http://drupal.org/node/26990

delphi77
سه شنبه 20 تیر 1385, 15:54 عصر
دوستان یکی که قبلا این مشکل را داشته و حلش کرده لطفا کمک کنه

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


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

pouriams
سه شنبه 10 مرداد 1385, 12:54 عصر
بین آقایون و خانم‌ها کسی نبود جواب ما رو بده؟
موندیم رو هوا کمک...



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

reza_rad
سه شنبه 10 مرداد 1385, 12:58 عصر
من که هر چی کلنجار رفتم نتونستم درستش کنم، اگه میشه اطلاعات کامل‌تری بدهید و یا تکه کد خودتان را بگذارید.

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

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

pouriams
یک شنبه 15 مرداد 1385, 13:15 عصر
راستی یادم رفت بگم من با net. برنامه نویسی می‌کنم و دیتابیسم هم Mysql5 هست. در ضمن دیتابیس‌ام هم encoding اش را utf8 گذاشتم و همچنین صفحه‌ی net. ام را.

reza_rad
یک شنبه 15 مرداد 1385, 13:23 عصر
زمانی که از طریق برنامه تو دیتابیس اطلاعات بریزم و از طریق برنامه بخونم درسته

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



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

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

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

mohsenna30ri
شنبه 13 آبان 1385, 09:47 صبح
ببین این راه حل بدردت می خوره فکر کنم بد نباشد :
http://barnamenevis.org/forum/showthread.php?t=55431

mehran_337
چهارشنبه 25 بهمن 1385, 09:43 صبح
این لینک کار نمی کنه.
من همه کار کردم :
درموقع آپلودفایل در 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
چهارشنبه 25 بهمن 1385, 09:58 صبح
علامت ؟؟؟؟؟؟ به معنای اینه که دیتاهای شما با collation اشتباه به دیتابیس وارد شده. با هر collation ای هم که بخونیدش درست نمیشه.
مشکل شما توی ورود داده هست نه توی نمایش اون.

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

mehran_337
چهارشنبه 25 بهمن 1385, 13:19 عصر
بله از ویندوز استفاده می کنم.

mehran_337
چهارشنبه 25 بهمن 1385, 13:24 عصر
راستی یونیکد فایل sql من عربی هستش نمی دونم چرا اما از اکسس تبدیلش کردم اینطوری شده.
حالا وقتی دارم آپلودش می کنم utf-8 داره اما عربی نداره چیکار کنم.؟
به قول دوستمون همه کالکشنهارو امتحان کردم درست نشد.

reza_rad
چهارشنبه 25 بهمن 1385, 13:26 عصر
بله از ویندوز استفاده می کنم.


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

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

Nightbat
چهارشنبه 03 مرداد 1386, 14:36 عصر
آقا چرا این بحث اینجا نصفه مونده، یعنی همه مشکلشون حل شده ؟ اگه اینطوره یکی بگه چیکار کرده

delphi77
شنبه 03 شهریور 1386, 10:37 صبح
تو نسخه جدید مشکل حل شده

marmar
چهارشنبه 14 آذر 1386, 22:32 عصر
سلام
منم همین مشکل رو دارم میشه بگید تو تنظیمات language کجا رو باید چی set کنم؟ یعنی کلا تو این قسمت چی کار باید بکنم

scorpion_man
دوشنبه 19 آذر 1386, 00:57 صبح
سلام دوستان ، من با 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
دوشنبه 19 آذر 1386, 01:02 صبح
من همه این کارها را انجام دادم. utf-8 را هم انتخاب کردم. در صفحه net. هم encoding‌صفحه را utf-8 گذاشتم. ویندوزم هم فارسی است و .... اما بازهم وقتی از داخل query browser به رکوردهام نگاه می کنم درست نشون نمی ده. و وقتی دستی هم وارد دیتابیس می کنم آنوقت در وب سایتم درست نشون نمی ده.
چه راهی داره؟ :عصبانی++:
آقا شما فقط همون راهو داری من 1 هفته الافش بودم خودتو خسته نکن این راه گارانتی داره
و چندین بار تست شده و الانم رو چندین سایت داره کار میکنه من خودم گارانتی میدم اگه نتونستی برات source هم میزارم ولی خیلی آسونه مثل کار با sql server با ado هست و تمامی کلاساش عین اونه
موفق باشی

pooya1037
یک شنبه 02 دی 1386, 19:47 عصر
بعد از دستور mysql_connect('','','' ) دستور زیر را بنویسید
mysql_query('set names utf8')
(اخری باید به بعد ارutf8منتقل شود
البته توی data base هم باید utf8_persin_ic باشد

rostamiani
شنبه 20 بهمن 1386, 14:05 عصر
بعد از دستور mysql_connect('','','' ) دستور زیر را بنویسید
mysql_query('set names utf8')
(اخری باید به بعد ارutf8منتقل شود
البته توی data base هم باید utf8_persin_ic باشد
خیلی ممنونم
کارم رو راه انداختید

enteraks13
سه شنبه 13 فروردین 1387, 08:22 صبح
فهمیدم !!! :لبخند:
بعد از اتصال به بانک ، کد زیر را اضافه کنید :

mysql_query('SET NAMES utf8');
منبع : http://drupal.org/node/26990




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

mehdimaleki04
سه شنبه 02 مهر 1387, 10:31 صبح
pcseven جان ممنون

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

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

hamid67fathi
سه شنبه 21 آبان 1387, 11:26 صبح
سلام
اين موردی که گفتيد درسته اما يه مشکلی داره
اونم اينه که حرف ف رو درست چاپ نميکنه !!

zreali
دوشنبه 18 مرداد 1389, 01:52 صبح
بعد از دستور mysql_connect('','','' ) دستور زیر را بنویسید
mysql_query('set names utf8')
(اخری باید به بعد ارutf8منتقل شود
البته توی data base هم باید utf8_persin_ic باشد

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

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

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

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

hdhamedmailhd
شنبه 10 دی 1390, 23:43 عصر
اگه از asp.net استفاده می کنی از کد زیر استفاده کن.
conn.ConnectionString = "Server=xxxxxxxxxx;Uid=xxxxxxxxxx;Pwd=xxxxxxx;Datab ase=hd;charset=utf8;"
چون واسه نمایش حروف فارسی باید کدگذاری روی utf8 باشه پس charset=utf8 رو به آخر ConnectionString اضافه می کنیم.به همین راحتی!!!!!

shariati-it
شنبه 06 اسفند 1390, 14:18 عصر
مشکل منهم با این کد حل شد ممنون
mysql_query('SET NAMES utf8');

moheb1
دوشنبه 05 تیر 1391, 14:06 عصر
خیلی ممنونم
منم این مشکل (؟؟؟؟...)رو داشتم , با کاری که شما گفتی مشکلم حل شد.

zahramehdi
پنج شنبه 08 تیر 1391, 12:14 عصر
سلام در sql express چی جوری باید فیلدهارو فارسی تعیین کرد؟

moheb1
سه شنبه 14 شهریور 1391, 18:26 عصر
مشکل منم با همین کد حل شد
خیلی ممنونم

فهمیدم !!! :لبخند:
بعد از اتصال به بانک ، کد زیر را اضافه کنید :

mysql_query('SET NAMES utf8');
منبع : http://drupal.org/node/26990

h_m_mood
پنج شنبه 23 شهریور 1391, 12:56 عصر
سلام دوست عزیز مشکلت با این کار حل میشه باید وقتی اطلاعات رو میفرستی به دیتا بیس یونیکدشو utf8 کنی برای این کار بعد کد انتخاب دیتابیس کد زیر رو اضافه کن مشکلت حل میشه

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