2013-07-02 63 views
0

我有一個MySQL表成員。 會員名稱有阿拉伯名字。 mname整理設置爲utf8_general_ci阿拉伯文本沒有儲存在mysql數據庫中?

當用戶輸入阿拉伯文名稱作爲其他字符存儲在數據庫表中時。但是當我檢索並在網站中顯示它時,它顯示爲正確的阿拉伯文字。爲什麼它不在數據庫表中存儲爲阿拉伯文字?

我想這,但只有我得到問號沒有阿拉伯文字...

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: 

mysql_query("SET NAMES 'utf8'"); mysql_query('SET CHARACTER SET utf8'); 

PHP代碼:使用簡單的PHP

$mname = $_POST['mname']; 
$email = $_POST['email']; 
$password = $_POST['password']; 
$gender = $_POST['gender']; 
$age = $_POST['age']; 
$city = $_POST['city']; 
$country = $_POST['country']; 



$query="insert into member (mname, email, password, gender, age, city, country) values ('$mname','$email','$password', '$gender', '$age','$city','$country')"; 
mysql_query("SET NAMES 'utf8'"); 
mysql_query('SET CHARACTER SET utf8'); 
mysql_query($query); 
+0

也許你看到那些「其他字符」的工具使用了錯誤的編碼? – Sirko

+0

'......它存儲在數據庫表中作爲一些其他角色......「你怎麼知道的?你在使用類似phpMyAdmin的東西嗎? –

+0

你如何檢查表格的內容? –

回答

-1

,可能與這個問題來設置meta標籤

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

還必須設置列集合類型應該是相同utf8_general_ci.更在表和數據庫類型也會考慮相同。

而且還有一點要小心像

O讀,寫和正確使用PHP的mysql數據庫排序阿拉伯文字,請確保:

1 MySQL的字符集:UTF-8的Unicode(UTF-8 )

2- MySQL連接歸類:utf8_general_ci

3-數據庫和表歸類被設定爲:utf8_general_ci或utf8_unicode_ci

有關詳細信息,

mysql_query("SET NAMES 'utf8'"); mysql_query('SET CHARACTER SET utf8'); 

然後,在你的PHP腳本,當你連接到數據庫中添加此代碼LINK

讓我知道如果我能幫助你。

+0

請勿使用'SET NAMES'!請參閱http://stackoverflow.com/a/12720360/476 – deceze

+0

我應該在哪裏設置這些(1) - MySQL charset:UTF-8 Unicode(utf8) (2) - MySQL連接排序規則:utf8_general_ci ??? – user2490465

+0

你可以用php和mysql一起設置,你可以找到相同的語法。 – liyakat