[英]Import mySQL data - wrong charset
我通過我的網站遷移到另一個ISP,但遇到了問題。 我轉儲了mySQL數據庫,導入了新的ISP,然后從網絡連接時出現了一些不好的跡象,例如:“ wy ??? czy ?? si ?? podczas u ?? ywania,nie uruchamia si。?”,
我來自波蘭,所以我使用ę,±等本地符號。我不知道字符集的問題在哪里,我不更改數據庫中的字符集。 如何轉換此數據庫或其他解決此問題的方法?
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";
}
這就是我最終解決問題的方式:
第一個mysqldump -uusername -ppassword --default-character-set = latin1數據庫-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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.