佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > mysql中插入表數(shù)據(jù)中文亂碼問題的解決方法

mysql中插入表數(shù)據(jù)中文亂碼問題的解決方法

熱門標(biāo)簽:Linux服務(wù)器 鐵路電話系統(tǒng) AI電銷 網(wǎng)站排名優(yōu)化 服務(wù)外包 百度競價排名 呼叫中心市場需求 地方門戶網(wǎng)站

一、問題

開發(fā)中遇到將其它數(shù)據(jù)庫數(shù)據(jù)插入到mysql數(shù)據(jù)庫表中一直會報類似如下錯誤:

Incorrect string value: '\xE6\x88\x91' for column 'name' at row 1

二、分析

1.我先去查了兩個數(shù)據(jù)庫表中此字段對應(yīng)的類型都是 varchar,所以不存在類型不一致導(dǎo)致插入報錯的問題。

2. 排除字段類型不一致導(dǎo)致的錯誤后,我猜測是中文亂碼問題,然后插入純英文數(shù)據(jù)發(fā)現(xiàn)沒有報錯,所以確定了是中文亂碼問題。然后網(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ù)端時默認(rèn)使用的端口
default-character-set=utf8

2.上一步無誤后,打開命令行,輸入:net start mysql ,啟動mysql服務(wù);

顯示“服務(wù)已經(jīng)成功啟動”之后,輸入命令“mysql”,使用數(shù)據(jù)庫;

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

如上圖所示,發(fā)現(xiàn)默認(rèn)是"latin1"并不是“utf8”,需要繼續(xù)手動修改,輸入命令 “ 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ù)手動修改,輸入命令 “ 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;

在我們平時使用mysql的過程中,經(jīng)常會碰到中文亂碼的情況,根據(jù)平時的工作經(jīng)驗(yàn)我總結(jié)歸納了以下四個需要注意的地方:

1. mysql啟動時的字符集,在myini文件中配置 default-character-set=字符集 ,放在,[WinMySQLadmin]之上;

2. 數(shù)據(jù)庫建表的過程中設(shè)置字符集,在CREATE語句最后的 CHARSET=字符集 語句中設(shè)置;

3. 在驅(qū)動url中的選項(xiàng)中設(shè)置字符集,jdbc:mysql://localhost:3306/test?useUnicode=truecharacterEncoding=字符集;

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í)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • php寫入mysql中文亂碼的實(shí)例解決方法
  • MySQL字符集亂碼及解決方案分享
  • linux下mysql亂碼問題的解決方案
  • JDBC連接mysql亂碼異常問題處理總結(jié)
  • JDBC連接mysql處理中文時亂碼解決辦法詳解
  • 詳解mysql數(shù)據(jù)庫中文亂碼問題
  • 解決mysql數(shù)據(jù)庫數(shù)據(jù)遷移達(dá)夢數(shù)據(jù)亂碼問題

標(biāo)簽:黃山 蘭州 衡水 銅川 仙桃 湘潭 崇左 湖南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《mysql中插入表數(shù)據(jù)中文亂碼問題的解決方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    云林县| 乐东| 东台市| 绵阳市| 广州市| 衡南县| 鲁山县| 宿州市| 康保县| 宁夏| 双柏县| 九江市| 财经| 河南省| 南岸区| 游戏| 呼伦贝尔市| 凉城县| 徐汇区| 万盛区| 都江堰市| 恭城| 克山县| 含山县| 德阳市| 古田县| 北碚区| 华安县| 昌黎县| 县级市| 江川县| 平原县| 寿阳县| 英吉沙县| 肥西县| 白水县| 抚远县| 海南省| 镇雄县| 陈巴尔虎旗| 长沙市|