如何解決mysql表輸入中文出現(xiàn)問(wèn)號(hào)的問(wèn)題
分析
Incorrect string value: ‘\xE7\xA8\x8B\xE5\xBA\x8F…’ for column ‘course’ at row 1
數(shù)據(jù)庫(kù)的編碼格式為latin1
原因:
不支持中文,比如設(shè)置的latin字符,或者編碼解碼不一致問(wèn)題,比如客戶端用uf8,服務(wù)器用latin等
解決:
統(tǒng)一設(shè)置為utf-8格式即可
- 1.需要改配置文件,以后創(chuàng)建數(shù)據(jù)庫(kù)自動(dòng)utf-8
- 2.對(duì)使用的數(shù)據(jù)庫(kù),表,表中的列重新設(shè)置編碼格式為utf-8
修改配置文件
在mysql目錄下找到myini文件

如果文件再c盤(pán),復(fù)制出來(lái)到桌面修改,否則c盤(pán)保護(hù)不讓修改,修改后再替換即可
修改的有兩處,客戶端編碼,服務(wù)器編碼


(注:collation是排序方式)
然后重啟服務(wù)器即可,在管理員的cmd中輸入如下指令

查看修改后的mysql編碼格式

我已經(jīng)修改過(guò)了,這是修改后的
修改數(shù)據(jù)庫(kù)編碼,表編碼,表中的列編碼
1.先查詢(xún)數(shù)據(jù)庫(kù)編碼格式

如果不是utf8,可以使用如下命令修改
ALTER DATABASE 數(shù)據(jù)庫(kù) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
或者

2.表編碼格式修改
查詢(xún)表的編碼格式
show create table tablename(數(shù)據(jù)庫(kù)名.表名);

可以看出表編碼格式為utf8,列編碼為latin1,列不支持中文
如果表編碼不是utf8,可以如下修改
ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE …]
(注:此句把表默認(rèn)的字符集和所有字符列(CHAR,VARCHAR,TEXT)改為新的字符集:)
比如
ALTER TABLE web_user.user CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

再查詢(xún)?nèi)缦拢?/p>

latin消失了,支持中文,而且全部編碼一致
若修改某字段的字符集
ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE …];
如:
ALTER TABLE web_user.user CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;
如果還是不成功,刪了重建數(shù)據(jù)表可以考慮
附:
若只修改表格默認(rèn)的字符集
ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE…];
如:
ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
查看字段編碼:
SHOW FULL COLUMNS FROM tbl_name;
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL insert 記錄后查詢(xún)亂碼問(wèn)題解決方法
文章通過(guò)分析一個(gè)MySQL插入數(shù)據(jù)后查詢(xún)亂碼的問(wèn)題,探討了亂碼的原因,并提出了解決方法,問(wèn)題的根本原因是MySQL客戶端和服務(wù)器之間的字符集不一致,導(dǎo)致插入的中文字符被錯(cuò)誤解碼為亂碼,感興趣的朋友跟隨小編一起看看吧2024-11-11
淺談MySQL 統(tǒng)計(jì)行數(shù)的 count
這篇文章主要介紹了MySQL 統(tǒng)計(jì)行數(shù)的 count的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07
MySQL為例講解JDBC數(shù)據(jù)庫(kù)連接步驟
這篇文章主要為大家詳細(xì)介紹了MySQL為例講解JDBC數(shù)據(jù)庫(kù)連接步驟,感興趣的小伙伴們可以參考一下2016-08-08
MySQL數(shù)據(jù)庫(kù)可以用任意ip連接訪問(wèn)的方法
本文主要介紹了MySQL數(shù)據(jù)庫(kù)可以用任意ip連接訪問(wèn)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
Mysql數(shù)據(jù)庫(kù)樂(lè)觀鎖與悲觀鎖示例詳解
樂(lè)觀鎖和悲觀鎖是并發(fā)控制的一種機(jī)制,用于多線程或多進(jìn)程環(huán)境下對(duì)共享資源的訪問(wèn)管理,以防止數(shù)據(jù)不一致或競(jìng)態(tài)條件,這篇文章主要介紹了Mysql數(shù)據(jù)庫(kù)樂(lè)觀鎖與悲觀鎖的相關(guān)資料,需要的朋友可以參考下2026-04-04
MySQL數(shù)據(jù)庫(kù)觸發(fā)器從小白到精通
觸發(fā)器是SQLserver提供給程序員和數(shù)據(jù)分析員來(lái)保證數(shù)據(jù)完整性的一種方法,它是與表事件相關(guān)的特殊的存儲(chǔ)過(guò)程,它的執(zhí)行不是由程序調(diào)用,也不是手工啟動(dòng),而是由事件來(lái)觸發(fā),比如當(dāng)對(duì)一個(gè)表進(jìn)行操作時(shí)就會(huì)激活它執(zhí)行。觸發(fā)器經(jīng)常用于加強(qiáng)數(shù)據(jù)的完整性約束和業(yè)務(wù)規(guī)則等2022-03-03

