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.sql2 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個位元組表示...