2012-08-25 36 views
0

我想在數據庫中插入一個Unicode字符,如:(),但是當我在textarea中插入()時,它會添加一個空字段?在數據庫中插入一個Unicode字符

那麼我該如何在數據庫中添加這樣的字符呢?

我的數據庫是:

CREATE TABLE `t1` (
    `id` int(4) NOT NULL auto_increment, 
    `msg` varchar(500) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ; 

insert.php添加數據:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>my page</title> 
</head> 

<body> 
<form id="form1" name="form1" method="post" action="insert-ok.php"> 
    <p> 
    <label for="textarea"></label> 
    <textarea name="textarea" id="textarea" cols="45" rows="5"></textarea> 
    </p> 
    <p> 
    <input type="submit" name="button" id="button" value="Submit" /> 
    </p> 
</form> 
</body> 

嵌件ok.php插入和視圖數據:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>my data</title> 
</head> 

<body> 
<?php 
$con = mysql_connect("localhost","root","4530"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
    mysql_query("set names 'utf8'"); 
mysql_select_db("test", $con); 
$post= $_POST['textarea']; 
$sql = "insert into t1 values('$id','$post')"; 
mysql_query($sql,$con); 

$result=mysql_query("select * from t1 "); 

while($row = mysql_fetch_array($result)) 
{ 

    echo $row['msg'].'<br>'; 
} 
?> 
</body> 
</html> 

回答

1

U + 1F604帶開放嘴和微笑眼的微笑臉

請注意,它超出了U + FFFF,這意味着需要存儲個字節。

確保你使用MySQL 5.5或更高版本:

CREATE TABLE `t1` (
    ... 
) ENGINE=MyISAM DEFAULT CHARSET=utf8_mb4 AUTO_INCREMENT=7 ; 
+1

我有這個錯誤..#1115 - 未知字符集: 'utf8_mb4' – aboji

+0

@aboji看到我的編輯時, charset應該是utf8mb4 –

相關問題