2013-08-06 227 views
0

我想將我輸入到textarea中的malayalam文本保存到mysql。但是,當我嘗試接受表單提交中的馬拉雅拉姆語內容時,它會像à'ààμ€àμÂà'¬à'-à'-à'œà'œcharacters一樣返回。但是我使用了utf-8編碼。誰能幫我。我已經完成的代碼如下:將malayalam文本保存到數據庫

<?php 
$dbLink = mysql_connect('localhost', 'root', 'root'); 
mysql_query("SET character_set_results=utf8", $dbLink); 
mysql_query("SET character_set_connection=utf8", $dbLink); 
mb_language('uni'); 
mb_internal_encoding('UTF8'); 
mysql_select_db('test',$dblink); 
mysql_query("set names 'utf8'",$dbLink); 
if(isset($_POST['txt1'])) 
{ 
$txt= $_POST['txt1']; // get the unicode text from a submit action. 
$cQry= "insert into news (news) values ('$txt')" ; 
$cresult = mysql_query($cQry,$dbLink); 
} 
?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<meta charset="utf-8" /> 
</head> 
<body> 
<input type="hidden" id="MicrosoftILITWebEmbedInfo" attachMode="optout" value=""> 
<script type="text/javascript" src="http://ilit.microsoft.com/bookmarklet/script/Malayalam.js" defer="defer"></script> 
<form action="" method="post" accept-charset="utf-8"> 
<textarea rows="10" charset="utf-8" cols="20" name="txt1"></textarea> 
<input type="submit" value="Submit"> 
</form> 
</body> 
</html> 

Thankyou提前。

+1

通過ajax發送數據(例如你的JSON數據)也必須發送UTF-8編碼,所以你需要一個也在你的每個HTML頁面上。 – Backtrack

+0

請不要使用舊的'mysql_'功能。改用'mysqli_'函數或PDO。 – akluth

回答

0

在代碼中,我爲得到的結果作出的變化是:

<?php 
// Using mysql 
$dbLink=mysql_connect('localhost', 'root', 'root') or die('Could not connect: ' .  mysql_error()); 
mysql_select_db('test') or die('Could not select database'); 
mysql_query("set names 'utf8'",$dbLink); 
if (!empty($_POST['ta'])) { 
$val= $_POST['ta']; 
$val=utf8_encode($val); 
$qry="insert into news(id,news)values ('','$val')"; 
mysql_query($qry); 
} 
$result = mysql_query("SELECT * FROM news"); 
while ($row = mysql_fetch_row($result)) { 
echo $row[1]; echo "<br>"; 
} 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>Test</title> 
</head> 
<body> 
<form enctype="multipart/form-data" method="post" action="index.php"> 
<textarea name="ta" rows="6" cols="6"></textarea> 
<input type="submit" /> 
</form> 
</body> 
</html> 
1
change malayalam text to unicode in backend them save to database . 

use below function, onblur event to convert text to unicode: 

function convertToHex(num) { 
var code ; 
var code2 ='' ; 
var code3 =''; 
    for (i=0;i<num.length;i++) 
    { 
    code = num.charCodeAt(i).toString(16).toUpperCase(); 
    code3 = ''; 
     for(j=0; j<4-code.length; j++) 
    { 
     code3 += '0'; 
    } 
    code2 +='%u'+ code3 +code; 
    } 
    return code2; 
} 
+0

問題是,當我嘗試從textarea回顯malayalam內容時,它顯示爲一些其他字符。 – Jenz

+0

首先在瀏覽器中右鍵點擊檢查源代碼。 – 2013-08-06 10:10:23

+0

我可以將malayalam添加到textarea。但在插入數據庫之前,它應該保持原樣(在malayalam中)。但那不起作用。 – Jenz

0

只需設置數據庫歸檔爲utf8-general_ci名的排序規則。您不需要對您的PHP代碼進行任何更改。

相關問題