mysql 資料庫連線編碼問題

2021-10-04 04:57:48 字數 669 閱讀 1497

前幾天使用springboot做乙個資料庫查詢功能,發現使用中文就無法查到資料,經過測試sql語句是沒有問題的,但是就是查詢不到資料,一直顯示為null。後來,我靈機一動嘗試了一下查詢引數改為英文,顯示出查詢結果是正常的。這就說明了是編碼的問題。

起初我以為是springboot的編碼問題,但是我嘗試了之後發現是正常的,後來經過搜尋查詢發現是jdbc的url沒有指定編碼,所以mysql服務端使用了預設的編碼來解碼導致了錯誤。查詢資料經過網路傳輸,網路上的資料都是位元組了,如果不指定編碼的話,只能使用預設的編碼,但是預設的編碼和資料庫表中的資料使用的編碼是不一致的,如果是中文,那麼在資料庫中執行時已經是亂碼了(只不過我們不知道),因此導致了錯誤。不過如果資料庫開啟了日誌功能,應該是可以看到執行過的sql語句的,這也說明了日誌對於排錯的重要性。

解決辦法:

在 jdbcurl 後面新增:?useunicode=true&characterencoding=utf-8

注意:這個 utf-8 是資料庫建立時的編碼。如果使用的是其它編碼,要對應修改。

如果是文字配置檔案的話:使用&符號

如果是xml配置檔案的話:使用&的轉義字元&

python連線mysql資料庫編碼問題

通過以下語句可以連線資料庫。import mysqldb conn mysqldb.connect host localhost port 3306,user root passwd 123 db student 但是在獲取資料表中的資料時,中文漢字顯示問號?import mysqldb conn ...

python連線mysql資料庫 編碼問題

在利用pycharm連線本地的mysql資料庫時,要考慮到的是將資料庫語句填寫完整,困擾了一下午的問題就是連線語句並沒有加入編碼設定。db pymysql.connect host localhost user root passwd db charset utf8 在上述 中值得注意的是,char...

MySQL資料庫編碼問題

在程式開發中,有時會被字元亂碼的問題所困擾。對此,必須理解 mysql 的字符集編碼設定的原理 在mysql中,預設使用的是lartin1,也就是iso8859 1字符集編碼。這是一種8位的編碼,適用於所有西歐字元。而對於漢字等是不合適的。最好 最通用的編碼格式是utf 8,utf 8 8 位元 u...