鍍金池/ 問答/數(shù)據(jù)庫(kù)/ 解決數(shù)據(jù)庫(kù)亂碼。

解決數(shù)據(jù)庫(kù)亂碼。

以前數(shù)據(jù)庫(kù)就有亂碼,但是輸出是正常的,就沒有管,后來新添了數(shù)據(jù)也沒啥問題,最近環(huán)境更新,導(dǎo)致輸出也亂碼,請(qǐng)問有木有能解決這個(gè)亂碼的大神?

回答
編輯回答
小眼睛

中文亂碼嗎?試試下面的

alter database 數(shù)據(jù)庫(kù)名  character set utf8;

改了后,在看下數(shù)據(jù)庫(kù)編碼有沒有改成utf8,改了后重新插入一條看看。

用 mysql 語(yǔ)法插入一條看看是不是亂碼
如果是的話設(shè)置下面這個(gè):
  • 中止MySQL服務(wù)
  • 在MySQL的安裝目錄下找到my.ini,如果沒有就把my-medium.ini復(fù)制為一個(gè)my.ini即可
  • 打開my.ini以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并關(guān)閉
  • 啟動(dòng)MySQL服務(wù)并查詢此時(shí)編碼方式
show variables like 'character%';
看看大部分是不是都是utf8 了
如果是頁(yè)面提交數(shù)據(jù)后亂碼的話,設(shè)置下頁(yè)面的編碼為 utf-8,以及連接數(shù)據(jù)庫(kù)的時(shí)候加入charset的格式utf-8
2018年1月19日 06:58
編輯回答
款爺

數(shù)據(jù)庫(kù)字符集三個(gè)位置保持一致就可以了,客戶端錄入字符集、jdbc字符集、數(shù)據(jù)庫(kù)表字符集,每個(gè)地方都檢查一下,肯定有不一致才會(huì)有亂碼出現(xiàn)。
對(duì)于環(huán)境調(diào)整的字符集問題,最好把數(shù)據(jù)拿出來按照指定字符集重新導(dǎo)入,要保證讀取的時(shí)候不是亂碼的

2018年3月10日 13:00
編輯回答
敢試

編碼的問題,先檢查下我們所使用表的編碼方式,使用mysql命令:
show create table 表名;

 1.查看編碼方式 中文的編碼方式為gbk 或 UTF-8;
 2.如果表的編碼方式為gbk,則查看每個(gè)字段的編碼方式  如果不為中文編碼方式 則修改
  ALTER TABLE `表名` CHANGE `列名` `列名` VARCHAR(45) CHARACTER

SET UTF8 NOT NULL;

總結(jié)一下,如果遇見插入中文亂碼問題,先確定問題的產(chǎn)生肯定與編碼方式有關(guān),先檢查數(shù)據(jù)庫(kù)的編碼方法,查看下數(shù)據(jù)庫(kù)字符集,再查看下表的編碼,最后檢查下表中列的編碼。檢查這三個(gè)地方的編碼,一般問題即可迎刃而解。
2017年6月5日 10:20