我有一张表,前段时间在其中插入了数据。php 包含的数据和其中的字符集是 utf-8 。
mysql_query("set names utf8");
现在,我在另一个项目中需要这个表,所有数据都将显示在 php mysql 默认字符集上。
问题:我的数据是波斯语,当我设置字符集 utf-8 时,一切正常,但没有字符集数据转换为“??????” 我该怎么办?!
我想将旧表中的所有数据导入到新字符集的新表中!!
试试这个可能对你有帮助
<?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);
?>
///
$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);
}
@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 进行转换快得多。