我有一張表格,前一段時間插入了數據。由php和字符集包含的數據是utf-8。更改mysql表字符集
mysql_query("set names utf8");
現在,我需要在另一個項目中的所有數據將顯示在MySQL的默認字符集。
問題:我的數據是波斯語,當我設置charachter設置utf-8時,每件事都可以,但沒有字符集數據轉換爲「?????」我該怎麼辦?!
我想從舊錶中導入所有數據到新的字符集上的新表!
我有一張表格,前一段時間插入了數據。由php和字符集包含的數據是utf-8。更改mysql表字符集
mysql_query("set names utf8");
現在,我需要在另一個項目中的所有數據將顯示在MySQL的默認字符集。
問題:我的數據是波斯語,當我設置charachter設置utf-8時,每件事都可以,但沒有字符集數據轉換爲「?????」我該怎麼辦?!
我想從舊錶中導入所有數據到新的字符集上的新表!
///
$SERVER = "http://localhost:8084";
$db = mysql_connect('localhost','root') or die("Not Connected");
$sldb = mysql_select_db('vifarbydata',$db);
mysql_query("set names utf8");
$sql = "SELECT * FROM `region` ";
$res = mysql_query($sql);
while($h=(mysql_fetch_array($res)))
{
$row[] = $h;
}
mysql_close($db);
/// set another character set
$SERVER = "http://localhost:8084";
$db = mysql_connect('localhost','root') or die("Not Connected");
$sldb = mysql_select_db('vifarbydata',$db);
foreach ($row as $item)
{
echo $sql = "insert into `region2` (id,name,myId) values (".$item['id'].",'".$item['name']."','".$item['myId']."') ";
mysql_query($sql);
}
試試這個可以幫助你
<?php
header('Content-Type: text/html; charset=utf-8');
?>
and then in the connection
<?php
$dbLink = mysql_connect($argHost, $argUsername, $argPassword);
mysql_query("SET character_set_results=utf8", $dbLink);
mb_language('uni');
mb_internal_encoding('UTF-8');
mysql_select_db($argDB, $dbLink);
mysql_query("set names 'utf8'",$dbLink);
?>
我不想設置字符集UTF-8,我想將我的舊錶轉換爲新的,我沒有改變我的字符集,只是爲了這張桌子!是否有可能? – afsane
@afsane,使用mysqldump,你可以轉儲從OLD_TABLE數據,然後將其導入到具有新的字符編碼NEW_TABLE。
mysqldump -u user -p --no-create-info schema old_table > old_table.dump
mysql -u user -p schema new_table < old_table.dump
這比通過PHP進行轉換要快得多。
選中此項:http://www.devcha.com/2008/03/convert-existing-mysql-database-from.html和http://dev.mysql.com/doc/refman/5.0/en/ /charset-conversion.html –
使用UTF-8。如果數據是unicode,請使用unicode。 「其他項目」沒有理由將字符集決定留給MySQL。 – DaveRandom