MYSQL遇到的亂碼問題

    一個程序員沒有遇到BUG,就不能稱爲一個合格的程序員,我一直認爲一個程序員成長最快的方式就是一直遇到BUG,只要自己沒有放棄就會快速成長。以後自己也會將一些自己遇到的奇葩錯誤放到這個分類裏,提醒自己。雖然我倒下了,但是你們還在前行。

    這一次是比較常見的數據庫亂碼問題。任何的數據在電腦中都是以二進制的形式存在的,所以將數據轉換爲二進制和將二進制轉換爲數據就是至關重要的一件事。也就有了編碼和解碼的概念。所以亂碼的本質其實就是編碼的不正確和解碼的不正確。

    下面就來說一說數據庫中亂碼的問題。因爲我寫的是web項目,所以這次也主要是以web項目爲例子。數據庫出現亂碼主要有兩個原因(大概),一個是網頁的編碼,還有一個就是數據庫的問題,網頁的編碼設置很簡單,就是將頁面的編碼設置爲charset="UTF-8",這個網上一搜一大堆,這裏不再詳細介紹。今天主要講一下數據庫出現問題的解決方法。

    數據庫出現亂碼問題是比較難解決的,因爲我遇到過這種蛋疼的事。怎麼查看自己數據庫的編碼?我用的是MYSQL,所以在MYSQl執行命令 SHOW VARIABLES LIKE 'character%'; 可以查看自己的MYSQL數據庫的編碼格式。如下圖就是正確的。

    因爲現在大部分使用的utf-8,所以我也設置爲utf-8,看自己的需求設置,不一定和我的一樣,如果你的需求是utf-8,但是是下面這個樣子。

你可能就出現了問題。網上對於這樣的錯誤解決方法也是比較多的。大部分都是將my.ini配置文件修改。這種方法是比較麻煩的,同時也很難成功的,至少我沒成功過。所以我推薦你刪除數據庫,重新裝一個數據庫。對,你沒有聽錯,就是推薦你重新裝一個MYSQL。下面我也就如何更改數據庫的編碼簡單說一下。

    在配置前要記得刪除MYSQL,刪除應用就可以了,還有兩個文件夾,一個是你MYSQL安裝文件夾,還有一個就是c盤下的隱藏文件夾。路徑如下:C:\ProgramData\MySQL,刪除這兩個文件夾就可以了,不用刪除註冊表。配置的時候都很簡單,都是NEXT下一步,大概到下面的界面(MYSQL5.5)


    這個要記得選擇第三個,在選擇utf-8就可以了,後面輸入你的密碼。在去重新查看數據庫編碼發現正常了。

    其實還有一個在數據庫連接時設置編碼的,對於我也是沒有用,這裏也是講代碼粘貼。

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/poll2.0?characterEncoding=utf-8

    上面的方法大概就是我試過的所有修改編碼的方法,只有重裝成功了,所以我推薦重裝。最省事,最簡單。

    就這樣,結束。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章