mysql把latin1编码的中文转成gbk(或utf8)编码
很多項(xiàng)目在初建時(shí)由于工程師不嚴(yán)謹(jǐn)或者水平不夠選用了錯(cuò)誤的數(shù)據(jù)庫(kù)編碼,用latin1編碼存儲(chǔ)中文數(shù)據(jù),隨著項(xiàng)目復(fù)雜程度提高,會(huì)出現(xiàn)各種編碼問題,可以說(shuō)是后患無(wú)窮,經(jīng)過(guò)反復(fù)測(cè)試,我總結(jié)出一個(gè)辦法可以把latin1編碼的數(shù)據(jù)庫(kù)轉(zhuǎn)換成gbk或u8編碼,與大家分享
一. latin1 轉(zhuǎn) gbk
1.導(dǎo)出數(shù)據(jù)庫(kù)
mysqldump --default-character-set=latin1 -h xxx.xxx.xxx.xxx -u xxx -P 3306 -pxxxxxxxx db_name table_name > /usr/home/wanghui3/table_name.sql
2.修改 table_name.sql
/*!40101 SET NAMES latin1 */;? 改為 /*!40101 SET NAMES gbk */;
建表語(yǔ)句中
?DEFAULT CHARSET=latin1;? 改為? DEFAULT CHARSET=gbk;
注:不同版本的mysqldump可能稍有出入
3.導(dǎo)入數(shù)據(jù)庫(kù)
mysql -uroot -pxxxxxxxx? db_name < table_name.sql
二. latin1 轉(zhuǎn) utf-8
1.第一步不變
2.轉(zhuǎn)換編碼
iconv -t utf-8 -f gbk -c table_name.sql > table_name_u8.sql
注意:用latin1保存中文本就是錯(cuò)誤的,表中存儲(chǔ)的是錯(cuò)誤的latin1編碼,但實(shí)際上是正確的gbk編碼,所以這里輸入編碼應(yīng)為gbk
3. 修改table_name_u8.sql,找到 latin1 都改為 utf8
4.導(dǎo)入數(shù)據(jù)庫(kù)
mysql -uroot -pxxxxxxxx? db_name < table_name_u8.sql
=======================================================
查看系統(tǒng)的字符集和排序方式的設(shè)定可以通過(guò)下面的兩條命令:
mysql> SHOW VARIABLES LIKE 'character%';
mysql> SHOW VARIABLES LIKE 'collation_%';
轉(zhuǎn)載于:https://blog.51cto.com/higgs/995100
總結(jié)
以上是生活随笔為你收集整理的mysql把latin1编码的中文转成gbk(或utf8)编码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAS数据挖掘方法论 ─ SEMMA
- 下一篇: MS SQL 导入导出 提示 未在本地计