2011-07-25 20 views
2

データベース全体をutf8に変換する方法を理解し、データの一部が正しく表示されないという問題を解決しようとしています。この時点で私は単に混乱しています。私はあなたの洞察力が必要です。MySQL全体のデータベースをutf8に変換するには

SHOW VARIABLES LIKE '%character%' returns: 

Variable_name Value 
character_set_client utf8 
character_set_connection utf8 
character_set_database latin1 
character_set_filesystem binary 
character_set_results utf8 
character_set_server latin1 
character_set_system utf8 
character_sets_dir /usr/share/mysql/charsets/ 

私はUTF8にすべてのデータを変換したいが、私はこのorerationを実行する方法やデータに何が起こるかわからない(つまり、不正な形式のデータを、正しくない:ここではあなたがおそらく必要になりますいくつかの情報ですエンコーディング)。

私は変換が完了したら、私はまだ私のコードで

header("Content-type: text/html; charset=utf-8"); 
and mysql_query("SET NAMES 'utf8'", $connection); 

が必要なのでしょうか?

答えて

1

私はあなたがあなたのデータを変換するために、この小さなスクリプトを使って行くことをお勧め。 そして、データベースを新しくバックアップしてください。

<?php 
// Database info 

$dbhost = 'localhost'; 
$dbuser = 'db_user'; 
$dbpass = 'password'; 
$dbname = 'db_name'; 

//--------------- 

header('Content-type: text/plain'); 

$dbconn = mysql_connect($dbhost, $dbuser, $dbpass) or die(mysql_error()); 
$db = mysql_select_db($dbname) or die(mysql_error()); 

$sql = 'SHOW TABLES'; 
$result = mysql_query($sql) or die(mysql_error()); 

while ($row = mysql_fetch_row($result)) 
{ 
    $table = mysql_real_escape_string($row[0]); 
    $sql = "ALTER TABLE `$table` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci"; 
    mysql_query($sql) or die(mysql_error()); 
    print "$table changed to UTF-8.\n"; 
} 

mysql_close($dbconn); 
?> 
+0

私はあなたのスクリプトを試してみましたが、それでも私は 'character_set_client \t UTF8 character_set_connectionに\t UTF8 character_set_database \t latin1の character_set_filesystem \tバイナリ character_set_results \t UTF8 character_set_server \t latin1の character_set_system \t UTF8 character_sets_dir \t /を取得していますusr/share/mysql/charsets/' – bikey77

+0

データをエクスポートし、データベースを削除し、 'CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;'を実行します。mysqlリファレンスの 'character_set_server latin'については、http://dev.mysql.com/doc/refman/5.0/en/charset -server.html – DKSan

+0

私はサーバ上で制限された権限しか持たないので、スクリプトでそれを行うことはできません。私はPlesk UIを使用してのみdbを作成できます。 – bikey77

関連する問題