共計 1167 個字符,預計需要花費 3 分鐘才能閱讀完成。
這篇文章主要介紹“Mysql 數(shù)據(jù)庫亂碼的原因及解決方法”,在日常操作中,相信很多人在 Mysql 數(shù)據(jù)庫亂碼的原因及解決方法問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Mysql 數(shù)據(jù)庫亂碼的原因及解決方法”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!
今天又到了 Mysql 亂碼問題,過去總是匆匆的解決了就算了。這次我實在受不了了。每次都是迷迷糊糊的改好的。這次決定好好探索一把,看了很多資料及博客之后才理解了點。先記錄下來。如有不對的請指正。1. 首先 Mysql 是在 4.0 之后才支持多字符集的。所以只有 4.0 之后才會出現(xiàn)這種問題。編碼轉換的規(guī)則就是,在輸入數(shù)據(jù)時將編碼由“客戶端編碼”轉換為“服務器端編碼”,輸出時將數(shù)據(jù)由“服務器端編碼”轉換為“客戶端編碼”。MySQL 的字符集處理是這樣的:1、發(fā)送請求。
1)客戶端發(fā)送請求到服務器端。2)服務器端會把請求的數(shù)據(jù)從客戶端字符集 (character_set_client) 轉成服務器連接字符集(character_set_connection)。3)然后服務器會檢測存儲區(qū)域 (table,column) 的字符集,然后把數(shù)據(jù)從連接字符集 (character_set_connection) 轉為存儲區(qū)域 (table,column) 的字符集,然後再存儲或者查詢。2、返回請求。1)服務器將存儲區(qū)域 (table,column) 的字符集轉換成服務器連接字符集(character_set_connection)。2)將服務器連接字符集 (character_set_connection) 轉換成結果字符集(character_set_results),再發(fā)送到客戶端。
首先我們看下
mysql status;
我們可以看到四個字符集的設置。1. 改變 my.ini 文件中的編碼可以改變所有的字符集。2.set names uf8 可以改變 Client conn 這兩個字符集。3. 建立數(shù)據(jù)庫時的設置編碼可以改變 DB 這個。知道了,原理之后我開始解決今天遇到的問題。1. 在其他地方正常顯示中文。但是在 CMD 中不能顯示顯示亂碼。首先我設置了 my.ini 將字符集全部設置為 utf8。個人感覺 utf8 是趨向標準的。然后數(shù)據(jù)庫建立時設置為 utf8. 可是看到 CMD 查詢出的是亂碼。這是因為 CMD. 也就是我們熟知的下的是不支持 utf8 的。所以我設置輸出到客戶端編碼方式轉換成 GBK 即可。也就是 set names gbk 。ok 問題解決。
到此,關于“Mysql 數(shù)據(jù)庫亂碼的原因及解決方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注丸趣 TV 網(wǎng)站,丸趣 TV 小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
正文完