mysql无法显示中文

时间:2017-03-06 12:15:58

标签: php mysql sql character-encoding

当我想在表格中输入一些汉字时,

<html>
<title>
Form
</title>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
</head>
<body>
<div id="wrapper">
<form action="form.php" method="post" accept-charset="UTF-8" >
<p>Input: <input type="text" name="input1" /></p>
<input type="submit" value="Submit" />
</form>


</div>
</body>
</html>`

和form.php:

<?php
header('Content-Type: text/html; charset=utf-8');

define('DB_NAME','form1');
define('DB_USER','root');
define('DB_PASSWORD','');
define('DB_HOST','localhost');

$link= mysql_connect(DB_HOST,DB_USER,DB_PASSWORD);

if (!$link){
    die('could not connect server'.mysql_error());  
} 

$db_selected = mysql_select_db(DB_NAME,$link);

if(!$db_selected){
    die('Cannot connect'.DB_NAME.': '.mysql_error());
}

$value=$_POST['input1'];

$sql="INSERT INTO form (input1) VALUES ('$value')";

if (!mysql_query($sql)){
    die('Error: '.mysql_error());
}


mysql_close();
header("Location: form.htm");
?>

Mysql表格输出奇怪的东西,如早期和#2621 为什么? 我应该在代码或Mysql上做些什么吗? 请帮忙!!!! 感谢!!!!!!

2 个答案:

答案 0 :(得分:0)

您是否尝试在数据库连接后使用此行?

mysql_query("SET NAMES utf8");

答案 1 :(得分:0)

你可以试试这个。

mysql_set_charset('utf8', $link);

喜欢这个......

<?php
header('Content-Type: text/html; charset=utf-8');

define('DB_NAME','form1');
define('DB_USER','root');
define('DB_PASSWORD','');
define('DB_HOST','localhost');

$link= mysql_connect(DB_HOST,DB_USER,DB_PASSWORD);
mysql_set_charset('utf8', $link);
if (!$link){
    die('could not connect server'.mysql_error());  
} 
...
...