2011-12-31 9 views
1

私はmysqlデータベースに中国語の文字を保存しようとしていますが、それはちょっと乱雑な文字を保存しています。 助けてください.. は、ここに私のコード - 文字セット地獄へmysql dbに中国語文字を格納していません

<?php header("Content-Type: text/html; charset=UTF-8"); 
if(isset($_POST['submit'])) 
{ 
$conn=mysql_connect("localhost","root","") or die("CONNECTION FAILED"); 
$db=mysql_select_db("mytest",$conn) or die("DATABASE DOES NOT EXISTS"); 
mysql_query("SET character_set_client=utf8", $conn); 
    mysql_query("SET character_set_connection=utf8", $conn); 
mysql_query("INSERT INTO tbl_test(id,name) 
VALUES (null, '".$_POST['fname']."')") or die(mysql_error()); 
?> 
<html> 
<head> 
<title>Untitled Document</title> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
</head> 
<body> 
<form action="" method="post"> 
Name: <input type="text" name="fname" /> 
<input type="submit" name="submit" /> 
</form> 
</body> 
</html> 
+0

テーブルの文字セットとは何ですか? –

+0

charset:UTF8、照合:utf8_general_ci – spatil

+0

-0.49(mysql_queryをまだ使用している場合):P PDOまたはmysqliを調べます。特に、準備されたステートメントに対する彼らのサポート。 – cHao

答えて

1

歓迎です。

PHPでは、特定の文字セットを使用するには、絶対にすべてが同じ文字セット内になければなりません。 UTF8を使うつもりなら、すべてがUTF8でなければなりません。データベースはUTF8を文字セットとして使用する必要があります。スクリプトとDB間の接続はUTF8でなければなりません(PHPスクリプト自体はUTF8ファイルとして保存する必要がありますBOMを持たないのは後でBOMを引き起こすだけなので)、ブラウザはUTF8でスクリプトによって生成されたページを表示している必要があります(header()コマンドを使用して、この)。

チェーン内のリンクがUTF8でない場合、ある文字エンコーディングで有効な特定の文字シーケンスでは迷惑メールが表示されますが、別の文字シーケンスでは有効になりません。 PHPは文字セット間の変換機能を備えていますが、すばやく乱雑になり、避けるのが最善です。

+0

ありがとうGorDonM .. – spatil

関連する問題