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