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

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

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

回答
編輯回答
小眼睛

中文亂碼嗎?試試下面的

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

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

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

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

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

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

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

SET UTF8 NOT NULL;

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