mysql中插入表數(shù)據(jù)中文亂碼問題的解決方法
一、問題
開發(fā)中遇到將其它數(shù)據(jù)庫數(shù)據(jù)插入到mysql數(shù)據(jù)庫表中一直會(huì)報(bào)類似如下錯(cuò)誤:
Incorrect string value: '\xE6\x88\x91' for column 'name' at row 1

二、分析
1.我先去查了兩個(gè)數(shù)據(jù)庫表中此字段對應(yīng)的類型都是 varchar,所以不存在類型不一致導(dǎo)致插入報(bào)錯(cuò)的問題。
2. 排除字段類型不一致導(dǎo)致的錯(cuò)誤后,我猜測是中文亂碼問題,然后插入純英文數(shù)據(jù)發(fā)現(xiàn)沒有報(bào)錯(cuò),所以確定了是中文亂碼問題。然后網(wǎng)上百度發(fā)現(xiàn)是mysql默認(rèn)的編碼問題導(dǎo)致的中文亂碼。
三、解決方案
1. 檢查本地mysql安裝文件目錄下的my.ini配置文件,服務(wù)器和客戶端的默認(rèn)編碼方式是否是utf8
[mysqld] # 服務(wù)端使用的字符集默認(rèn)為UTF8 character-set-server=utf8 [client] # 設(shè)置mysql客戶端連接服務(wù)端時(shí)默認(rèn)使用的端口 default-character-set=utf8
2.上一步無誤后,打開命令行,輸入:net start mysql ,啟動(dòng)mysql服務(wù);
顯示“服務(wù)已經(jīng)成功啟動(dòng)”之后,輸入命令“mysql”,使用數(shù)據(jù)庫;

查看數(shù)據(jù)庫表的字符集編碼格式:輸入命令 “ show create table test.xtt_test_copy; ”;

如上圖所示,發(fā)現(xiàn)默認(rèn)是"latin1"并不是“utf8”,需要繼續(xù)手動(dòng)修改,輸入命令 “ ALTER TABLE test.xtt_test_copy CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; ”,繼續(xù)輸入命令 “show create table test.xtt_test_copy; ”查看默認(rèn)數(shù)據(jù)庫表的字符集編碼改為了“utf8”;
查看數(shù)據(jù)庫的字符集編碼格式:輸入命令 “show creat database test; ”;

如上圖所示,發(fā)現(xiàn)默認(rèn),是"latin1"并不是“utf8”,需要繼續(xù)手動(dòng)修改,輸入命令 “ ALTER DATABASE test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;”,繼續(xù)輸入命令 “SHOW CREATE database test; ” ,查看默認(rèn)數(shù)據(jù)庫表的字符集編碼改為了“utf8”;

3. 最后,重啟服務(wù)就可以了 ~
mysql> net stop mysql; mysql> net start mysql;
在我們平時(shí)使用mysql的過程中,經(jīng)常會(huì)碰到中文亂碼的情況,根據(jù)平時(shí)的工作經(jīng)驗(yàn)我總結(jié)歸納了以下四個(gè)需要注意的地方:
1. mysql啟動(dòng)時(shí)的字符集,在myini文件中配置 default-character-set=字符集 ,放在,[WinMySQLadmin]之上;
2. 數(shù)據(jù)庫建表的過程中設(shè)置字符集,在CREATE語句最后的 CHARSET=字符集 語句中設(shè)置;
3. 在驅(qū)動(dòng)url中的選項(xiàng)中設(shè)置字符集,jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=字符集;
4. 在web顯示頁中設(shè)置顯示的字符集, <%@ page contentType="text/html; charset=字符集" language="java" import="java.sql.*" errorPage="" %>在servelt中則是response.setContentType("text/html;charset=字符集");
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
Workbench通過遠(yuǎn)程訪問mysql數(shù)據(jù)庫的方法詳解
這篇文章主要給大家介紹了Workbench通過遠(yuǎn)程訪問mysql數(shù)據(jù)庫的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-06-06
MySQL字符串索引更合理的創(chuàng)建規(guī)則討論
這篇文章主要給大家介紹了關(guān)于MySQL字符串索引更合理的創(chuàng)建規(guī)則,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
詳解CentOS 6.5中安裝mysql 5.7.16 linux glibc2.5 x86 64(推薦)
這篇文章主要介紹了CentOS 6.5中安裝mysql 5.7.16 linux glibc2.5 x86 64(推薦)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-12-12
MySQL數(shù)據(jù)庫多表操作通關(guān)指南(外鍵約束和多表聯(lián)合查詢)
看再多的資料不如自己親自動(dòng)手實(shí)戰(zhàn),往往實(shí)戰(zhàn)才能滲透知識(shí),下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫多表操作的相關(guān)資料,包含外鍵約束和多表聯(lián)合查詢等,需要的朋友可以參考下2022-06-06
新手必備之MySQL msi版本下載安裝圖文詳細(xì)教程
今天教大家怎么下載安裝MySQL msi版本,文中有非常詳細(xì)的圖文解說,對不會(huì)下載安裝mysql的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05

