我使用我的网站迁移到另一个ISP,我遇到了问题。我转储我的mySQL数据库,导入新的ISP,当从网络连接时我有一些不好的迹象,如:“wy ?? ?czy ??si ?podczas u ?? ywania,nieuruchamiasi ?”,
我来自波兰所以我使用像ę,ñ等当地的标志。我不知道charset的问题在哪里,我不在数据库中更改它。如何转换此数据库或其他解决此问题?
function db_connect(){
$connect_support = mysql_connect(SQL_SERVER, SQL_USER, SQL_PASS)
or die('bd server');
mysql_select_db(SQL_DB)
or die('table');
//$charset = mysql_client_encoding($connect_support);
//echo "Charset is: $charset\n";
}
答案 0 :(得分:1)
这就是我最终解决问题的方法:
首先mysqldump -uusername -ppassword --default-character-set = latin1 database -r dump.sql
然后运行此脚本
$search = array('/latin1/');
$replace = array('utf8');
foreach (range(128, 255) as $dec) {
$search[] = "/\x".dechex($dec)."/";
$replace[] = "&#$dec;";
}
$input = fopen('dump.sql', 'r');
$output = fopen('result.sql', 'w');
while (!feof($input)) {
$line = fgets($input);
$line = preg_replace($search, $replace, $line);
fwrite($output, $line);
}
fclose($input);
fclose($output);
答案 1 :(得分:0)