2011-12-10 104 views
1

我有一個字段「滾動」與排序「utf8_unicode_ci」在MySQL數據庫。 我正在嘗試將阿拉伯文本保存到此字段。mysql php多語言阿拉伯語和印地語

當我直接將它插入到mysql中時,它可以正常工作。

使用下面的代碼我試圖編輯該字段。當我回應它時,它顯示正確。但是,當它保存使用更新它的保存像「???????:89 ???????????????????????????????????????????? ???「????????」在數據庫中。

echo "<meta http-equiv=Content-Type content=text/html; charset=UTF-8>"; 
require 'config.php'; 
mysql_query("SET NAMES 'utf8'"); 
mysql_query('SET CHARACTER SET utf8'); 
$scroller=htmlentities($_POST['scroller'],ENT_QUOTES,"UTF-8"); 
mb_internal_encoding("UTF-8"); 
echo $scroller; 
    $sql="UPDATE arab_scroller SET scroller='$scroller' WHERE page='$id1' "; 
    if (!mysql_query($sql,$con)) 
     { 
      die('Error: ' . mysql_error()); 
     } 
     header('Location:index.php'); 

請幫我

+0

您是否確認要發佈的內容是否正確?將阿拉伯語文本粘貼到iso8559格式中會在它離開瀏覽器之前將其破壞。 –

回答

1

我只是測試同樣的事情土耳其。如果您的表的默認排序規則不是UTF8,則可能會出現這些類型的問題。

請先試試這個:

ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 

,然後嘗試再次運行代碼。

而且,最好是使用mysql_set_charset而不是SET NAMEShttp://php.net/manual/en/function.mysql-set-charset.php

+0

謝謝。問題解決了。 –

0

你只需要改變默認表歸類utf8_general_ci需要拉丁文;

OR

您運行此查詢:

ALTER TABLE tbl_name默認字符集是utf8 COLLATE utf8_general_ci;

這真的很適合我。