داده های فارسی و عربی در MySql

maysam.m

Well-Known Member
با سلام

من توی کار با php&mysql تازه کار هستم!

من میخوام متون فارسی را همراه با متون عربی (آیه های قرآن) در لوکال هاست توی یه پروژه وارد دیتابیس Mysql کنم و سپس اون رو به هاست شخصی منتقل کنم.

میخواستم بدونم برای ارسال این داده ها از چه این کودینگی استفاده کنم؟ utf8_persian_ci رو اگه استفاده کنم، حروف عربی کاملا پشتیبانی میشوند؟
مشکلی در انتقال اونها از لوکال به هاست پیش نمیاد؟

پیشاپیش از دوستانی که راهنمایی می کنند، متشکرم. :)
 

k2-4u

Well-Known Member
با سلام

من توی کار با php&mysql تازه کار هستم!

من میخوام متون فارسی را همراه با متون عربی (آیه های قرآن) در لوکال هاست توی یه پروژه وارد دیتابیس Mysql کنم و سپس اون رو به هاست شخصی منتقل کنم.

میخواستم بدونم برای ارسال این داده ها از چه این کودینگی استفاده کنم؟ utf8_persian_ci رو اگه استفاده کنم، حروف عربی کاملا پشتیبانی میشوند؟
مشکلی در انتقال اونها از لوکال به هاست پیش نمیاد؟

پیشاپیش از دوستانی که راهنمایی می کنند، متشکرم. :)

بله دقیقا از utf8_persian_c استفاده کنید
برای عربی هم فکر کنم utf8_arabic_c داشته باشه

قسمت دوم این تاپیک مطالعه کنید
http://forum.majidonline.com/showthread.php?t=138472
 

maysam.m

Well-Known Member
بله دقیقا از utf8_persian_c استفاده کنید
برای عربی هم فکر کنم utf8_arabic_c داشته باشه

قسمت دوم این تاپیک مطالعه کنید
http://forum.majidonline.com/showthread.php?t=138472

راستش چیزی توی این تاپیک ندیدم!



کد:
[QUOTE]To read ,write and sort Arabic text in mysql database using php correctly, make sure that: 

1- MySQL charset: UTF-8 Unicode (utf8) 
2- MySQL connection collation: utf8_general_ci 
3- your database and table collations are set to: utf8_general_ci or utf8_unicode_ci 

Then, add this code in your php script when you connect to db:[/QUOTE]
اینجا گفته برای استفاده از متون عربی باید از utf8_general_ci or utf8_unicode_ci استفاده کنید.
به نظرم بیام 2 تا ستون درست کنم در یک جدول. توی یکیش فارسی و توی یکیش عربی بفرستم. اینطوری مشکلی نیست؟ میشه هر ستون رو یک با یک نوع یونیکد ست کنم؟ توی مطالب با حجم زیاد مشکلی ایجاد نمیکنه؟
 

k2-4u

Well-Known Member
راستش چیزی توی این تاپیک ندیدم!



کد:
اینجا گفته برای استفاده از متون عربی باید از utf8_general_ci or utf8_unicode_ci استفاده کنید.
به نظرم بیام 2 تا ستون درست کنم در یک جدول. توی یکیش فارسی و توی یکیش عربی بفرستم. اینطوری مشکلی نیست؟ میشه هر ستون رو یک با یک نوع یونیکد ست کنم؟ توی مطالب با حجم زیاد مشکلی ایجاد نمیکنه؟

خب دوستان در این قسمت در مورد چگونگی ساخت دیتابیس و اتصال به آن صحبت می کنیم

اگر از زبان فارسی استفاده می کنید باید دیتابیس رو unicode کنید
که درست انجام دادن این کار خیلی مهم است

در مرحله ساخت دیتابیس (برای فارسی ) unicode رو بر روی utf8_persian_ci و charset رو
روی utf8 تنظیم کنید . نکته بسیار مهم طریقه اتصال به دیتابیس unicode شده و ریختن اطلاعات در
دیتابیس هست


در بسیار از مواقع دیتابیس درست unicode میشه
ولی اطلاعات درست insert نمیشن . برای فهمیدن این مشکل کافی از . سطر های دیتابیس رو با
phpmyadmin نگاه کنید . در صورتی که نوشته های فارسی قابل خواندن نباشند یعنی شما درست از unicode
استفاده نکردین . توجه داشته باشید که همین اطلاعات در هنگام واکشی کردن در یک صفحه php درست نشان داده میشوند


مراحل کار به صورت زیر است

1. دیتابیس را با یونیکد utf8_persian_ci بسازید
PHP:
create database  `mydb` default character set utf8 collate utf8_persian_ci;

2. بعد از اتصال به دیتابیس
نوع unicode رو با یک query مشخص کنید
PHP:
$link = mysql_connect('localhost',$user,$pass);

mysql_select_db($link,'mydb');

mysql_query('set character set utf8;');

سپس بعد از insert چندین مقدار در دیتابیس
به وسیله phpmyadmin سطر ها را نگاه کنید
متوجه می شوید که تمامی جملات فارسی سطر ها قابل خواندن است
اگر به صورت تحقیق حجم دیتابیس را در 2 حالت اتصال اندازه گیری کنید متوجه
تفاوت آن خواهید شد .
و نکته مهم این است که اگر اتصال را درست انجام ندهید در هنگام استفاده از توابعی مانند concat
دچار مشکل خواهید شد
این قسمت از مطلب تاپیکی که معرفی کردم خیلی مهم است

بله بهترین کار اینه که هر ستون رو جدا جدا کد گذاری کنید
در رابطه با این که
کدوم از این دو حالت بهتره نیاز به تحقیق و آزمایش داره
ولی من تجربی میگم که مشکلی نداره
 

جدیدترین ارسال ها

بالا