PDA

View Full Version : مشکل ذخیره فارسی اطلاعات



alux
دوشنبه 13 شهریور 1385, 09:15 صبح
سلام و خسته نباشید به خاطر این سایت خوبتون

دوستان من انجمن قسمت MYSQL گشتم ولی چیز خاصی پیدا نکردم

من تو یه صفحه HTML یه چند تا فرم دارم که نام و نام خوانوادگی افراد رو می گیره و اونا رو تو یه صفحه Php تو دیتا بیس ذخیره میکنه

مشکل اینه که وقتی کاربر اسم خودشو فارسی بنویسه و ثبت رو بزنه

اطلاعات در دیتا بیس به صورت فارسی ذخیره میشه و قاراش میش مثل این
| Ù
صطÙÙ | صاÙ

از این دستوری که تو یه ترد بود هم استفاده کردم تاثیری نداشت

ALTER DATABASE `alux` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;

در ضمن من اطلاعات دیتا بیس رو با دستور Select میبینم دسترسی رووت دارم

سیستم عامل redhat enterprise

راستی یادم رفت اینو هم بگم که انکودینگ صفحه هم به utf-8 ست شده

ممنون از شما منتظرم

oxygenws
دوشنبه 13 شهریور 1385, 09:41 صبح
اطلاعات در دیتا بیس به صورت فارسی ذخیره میشه و قاراش میش مثل این
اگر کجا فهمیدی قاراش میشه؟؟ لابد با phpMyAdmin!!!!!!!

alux
دوشنبه 13 شهریور 1385, 09:47 صبح
گفتم که دسترسی رووت دارم

در حالت کنسول به Mysql وارد میشم و با select دیتا ها رو می بینم

oxygenws
دوشنبه 13 شهریور 1385, 10:00 صبح
با web interface ای که خودتون نوشتید کار کنید.

alux
چهارشنبه 22 شهریور 1385, 15:44 عصر
با web interface ای که خودتون نوشتید کار کنید.


یعنی اصلا کار نداشته باشم چطوری ذخیره میشه؟

با همون دستورات php باز یابی کنم؟

reza_rad
چهارشنبه 22 شهریور 1385, 16:09 عصر
یعنی اصلا کار نداشته باشم چطوری ذخیره میشه؟

با همون دستورات php باز یابی کنم؟

آره.توی صفحه ای مثل همونی که ازش دیتا رو خوندی از دیتابیس بخون

miladclik
جمعه 28 مهر 1385, 21:02 عصر
سلام.
من همین مشکل رو دارم اما وقتی می خوام بازیابی کنم اصلا چیزی رو واسم نمی یاره.
اگه ممکن یه راهنمایی کنید.

peyman1987
شنبه 29 مهر 1385, 08:05 صبح
سلام
من هم این مشکل رو داشتم ولی به قول معروف یه کلک رشتی زدم. قبل از ذخیره سازی متن رو با URLENCODE انکود میکنم و موقه خواندن هم با URLDECODE دیکودش میکنم.
مثال :

کلمه اصلی : "کلمه فارسی"
کلمه انکود شده که در دیتابیس ذخیره شده:‌
" %DA%A9%D9%84%D9%85%D9%87+%D9%81%D8%A7%D8%B1%D8%B3% D9%8A"

کلمه دیکود شده : "کلمه فارسی"

miladclik
شنبه 29 مهر 1385, 19:21 عصر
می تونین بگین چطوری این کار رو کردین؟
اگه یک کد بفرسین ممنون می شم.

sma_mohseni
یک شنبه 30 مهر 1385, 09:35 صبح
میتونید این کار رو بکنید
در پی اچ پی مای ادمین ، Collation مربوط به Database , جدولهایتان را utf8 کنید و در سورستان نیز این تغییرات را بدهید


$connect = mysql_connect("localhost","root","");
mysql_select_db('dbName');
mysql_query("SET CHARACTER SET utf8", $connect);
mysql_query("SET NAMES 'utf8'", $connect);

البته لازم به ذکر است که کلیه اطلاعاتی را که قبلا وارد کرده اید را باید تبدیل به Utf8 کنید.

peyman1987
سه شنبه 02 آبان 1385, 08:28 صبح
مثال برای انکود کردن :




MYSQL_QUERY("INSERT INTO table VALUES('1','".URLENCODE("سلام")."')");

kavehmb
یک شنبه 07 آبان 1385, 16:32 عصر
مثال برای انکود کردن :




MYSQL_QUERY("INSERT INTO table VALUES('1','".URLENCODE("سلام")."')");





اینی که شما نوشتید همون طوری که از اسمش پیداست URL را Encode میکند!
کاربرد اصلیش اینه که اگر با GET اطلاعاتی را به سرور بفرستی که توش یک علامت غیر مجاز باشه سیستم به هم نریزه!
مثال :
index.php?op=add&data=kaveh & mirzaei
کار نمیکنه
که با urlencode به kaveh%20(&)%20
(به جای & یک چیزی میزاره که یادم نیست!):خجالت:

sabzmoh
دوشنبه 08 آبان 1385, 11:29 صبح
برای select کردن URLENCODE و نمایشش روی یک صفحه asp
insert باید چگونه باشد. تشکر

peyman1987
پنج شنبه 11 آبان 1385, 13:48 عصر
اینی که شما نوشتید همون طوری که از اسمش پیداست URL را Encode میکند!
کاربرد اصلیش اینه که اگر با GET اطلاعاتی را به سرور بفرستی که توش یک علامت غیر مجاز باشه سیستم به هم نریزه!
مثال :
index.php?op=add&data=kaveh & mirzaei
کار نمیکنه
که با urlencode به kaveh%20(&)%20
(به جای & یک چیزی میزاره که یادم نیست!):خجالت:

بله شما درست میگین این تابع مخصوص انکود کردن آدرسهاست ولی من هم گفتم که به قول معروف یه کلک رشتیه. در ضمن برای کلمات انگلیسی شاید زیاد تغییری ایجاد نکنه همونطور که خود شما گفتین ولی کاراکترهای فارسی رو بصورت کد در میاره و این برای بهم نریختن کلمات فارسی فوق العاده خوبه. برای مثال به این سایت مراجعه کنین. این سایت از همین تکنیک استفاده میکنه.
www.shora-b.com (http://www.shora-b.com)