1. 程式人生 > >MySQL模糊匹配中文查詢問題 dbutils

MySQL模糊匹配中文查詢問題 dbutils

今天遇到一個問題,MySQL中模糊匹配查詢(like),使用的是dbutils

匹配查詢英文、數字(學生id,學號,暱稱)時沒有問題,但匹配查詢中文(學生姓名)時,查詢不到結果

搞了好久,都沒有解決,最後,看到一篇文章說是編碼問題,豁然開朗,甚是無語

只要加上?characterEncoding=UTF-8&useUnicode=true就可以匹配查詢中文了

感覺有些問題真的是知道就是幾分鐘的事,不知道搞再久也無濟於事

需要學習的還要很多,努力!!!

新增characterEncoding=UTF-8&useUnicode=true的作用是:指定字元的編碼、解碼格式。

例如:mysql資料庫用的是gbk編碼,而專案資料庫用的是utf-8編碼。這時候如果添加了useUnicode=true&characterEncoding=UTF-8 ,那麼作用有如下兩個方面:

1. 存資料時:

資料庫在存放專案資料的時候會先用UTF-8格式將資料解碼成位元組碼,然後再將解碼後的位元組碼重新使用GBK編碼存放到資料庫中。

2.取資料時:

在從資料庫中取資料的時候,資料庫會先將資料庫中的資料按GBK格式解碼成位元組碼,然後再將解碼後的位元組碼重新UTF-8格式編碼資料,最後再將資料返回給客戶端。