mysql latin1 utf8資料匯入的問題

2021-09-08 09:34:56 字數 1762 閱讀 2568

2023年6月28日更新:

寫了個指令碼去自動化的轉資料庫並匯入:

正在匯出資料庫表...'18

#匯出資料庫表,這裡資料表需要自己先建立好

19 mysqldump --default-character-set=latin1 --no-create-info -u$db_user -p$db_pass $db_tmp $db_tmp_table -r $tmp_latin1_sql

2021 echo '

正在進行utf8轉換...'22

# 進行資料utf8轉換

23 iconv -f gb18030 -t utf8//

ignore $tmp_latin1_sql -o $tmp_utf8_sql

2425 echo '

正在進行文字替換...'26

#進行文字替換

27 sed -i '

s/latin1/utf8/

'$tmp_utf8_sql

28 sed -i '

s/myisam/innodb/

'$tmp_utf8_sql

29#替換原來的表,為 db_target_table

30 sed -i "

s/$label/$db_target_table/g

"$tmp_utf8_sql

3132 echo '

正在匯入目標資料庫...'33

#重新匯入 mysql資料庫

34 mysql -f -u$db_user -p$db_pass $db_target < $tmp_utf8_sql

主要的就是那幾個轉換命令,希望對大家有幫忙

這是乙個困擾了很久的問題,如果將原來預設latin1 資料庫的表匯入到utf8的表中,

匯入過程中可能會有錯:

可以使用  mysql -f 選項來強制操作

本來的思路和這裡說的差不多,先導出,轉utf8,再匯入,可以 mysqldump出來的再用 iconv轉換成utf8還是亂碼:

1 mysqldump --user=$root -p$password $olddatabase -r db.sql  

2 iconv -f latin1 -t utf8 db.sql >db_utf.sql

3 mysql -u -p < db_utf.sql;

所以還是得用uedit32來轉換(notepad++檔案太大會卡死),再傳到伺服器去匯入

utf 8 UTF 8 utf8 在使用中的區別

utf 8 是標準寫法,php在windows下邊英文不區分大小寫,所以也可以寫成 utf 8 utf 8 也可以把中間的 省略,寫成 utf8 一般程式都能識別,但也有例外 如下文 為了嚴格一點,最好用標準的大寫 utf 8 在資料庫中只能使用 utf8 mysql 在mysql的命令模式中只能使...

utf8 utf 8和UTF 8有什麼區別

utf 8 是標準寫法,在windows下邊英文不區分大小寫,所以也可以寫成 utf 8 utf 8 也可以把中間的 省略,寫成 utf8 一般程式都能識別,但也有例外 如下文 為了嚴格一點,最好用標準的大寫 utf 8 b 在mysql資料庫中只能使用 utf8 b 在mysql的命令模式中只能使...

網頁utf 8亂碼 utf8亂碼

複製 在前 在windows作業系統上使用ie作為瀏覽器時。常常會發生這樣的問題 在瀏覽使用utf 8編碼的網頁時,瀏覽器無法自動偵測 即沒有設定 自動選擇 編碼格式時 該頁面所用的編碼。即使網頁已經宣告過編碼格式 由此造成某些含有中文utf 8編碼的頁面產生空白輸出。由於utf 8為3個位元組表示...