您好,登錄后才能下訂單哦!
小編給大家分享一下mysql個別文字亂碼怎么辦,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
mysql個別文字亂碼的解決方法:首先打開server\MySQL文件夾;然后打開my.ini文件;最后添加代碼為“character_set_server=gbk”即可。
java網站MySQL數據庫個別文字亂碼問題
亂碼問題很讓人頭疼,特別是極其少量的亂碼。這里分享一個個人開發過程中遇到的一個亂碼問題,希望能對大家有所幫助。
方法/步驟
檢查亂碼出現位置——前臺。
這里小編通過火狐瀏覽器的firebug工具檢查了前臺jsp頁面,發現post的的確是utf8的數據。所以,排除前臺傳送數據時產生亂碼。
檢查亂碼出現的位置——后臺。
因為同事用來接收前臺數據的是struts formbean的方式,所以小編不是很了解,就用了個笨辦法:找到產生亂碼的數據傳遞過程,對于過程中經過的每個方法都添加一個輸出,在后臺查看輸出的數據。
結果,這些數據也是正常的。
檢查亂碼出現位置——MySQL數據庫。
當排除了前后臺,那么只剩下數據庫了。那么問題就在數據庫上了。
小編先在數據庫里直接數據了亂碼的漢字,發現可以存儲。排除了數據庫表的文字編碼問題。
之后小編在工具軟件中查詢了一下(語句:show variables like '%char%';),結果如下圖。問題一下子發現了:由于gb2312中漢字并不全,所以一些漢字是沒有編碼的,此時這些漢字就會被強制轉換為“?”,至此這個漢字的數據就丟失了,而且不可還原。
原因詳解:
MySQL數據庫的數據進出實際上是有幾道轉換手續的。
其中進入的時候:character_set_client轉character_set_connection轉character_set_server存入數據庫。
而取出的時候:數據庫取出轉character_set_server轉character_set_result。
這樣大家應該明白了吧,進出數據庫的數據都要經過character_set_server轉換,所以無論是前臺的正確的漢字還是數據庫內正確的漢字,只要不在gb2312內就會被轉換成問號。
解決方法:
一勞永逸的方法,小編直接在server\MySQL文件夾內,將my.ini文件修改了。
修改過程為:找到[mysqld]再向下找幾行發現“default_character_set=utf8”,在該行下添加一行“character_set_server=gbk”。
當然不是必須用gbk,小編是為了小心起見用了國標擴展,即gb2312的擴展gbk。
看完了這篇文章,相信你對mysql個別文字亂碼怎么辦有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。