程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 修改MYSQL數據庫,數據表,字段的編碼(解決JSP亂碼)

修改MYSQL數據庫,數據表,字段的編碼(解決JSP亂碼)

編輯:關於JSP

要解決jsp(SUN企業級應用的首選)亂碼,首先就要了解jsp(SUN企業級應用的首選)亂碼的原因

1.架設服務器安裝MySQL(和PHP搭配之最佳組合)時的會讓你選擇一種編碼,如果這種編碼與你的網頁不一致,可能就會造成jsp(SUN企業級應用的首選)頁面亂碼
2.在PHPMYADMIN或MySQL(和PHP搭配之最佳組合)-front等系統 創建數據庫時會讓你選擇一種編碼,如果這種編碼與你的網頁不一致,也有可能造成jsp(SUN企業級應用的首選)頁面亂碼
3.創建表時會讓你選擇一種編碼,如果這種編碼與你的網頁編碼不一致,也可能造成jsp(SUN企業級應用的首選)頁面亂碼
4.創建表時添加字段是可以選擇編碼的,如果這種編碼與你的網頁編碼不一致,也可能造成jsp(SUN企業級應用的首選)頁面亂碼
5.用戶提交jsp(SUN企業級應用的首選)頁面的編碼與顯示數據的jsp(SUN企業級應用的首選)頁面編碼不一致,就肯定會造成jsp(SUN企業級應用的首選)頁面亂碼.
如用戶輸入資料的jsp(SUN企業級應用的首選)頁面是big5碼, 顯示用戶輸入的jsp(SUN企業級應用的首選)頁面卻是gb2312,這種100%會造成jsp(SUN企業級應用的首選)頁面亂碼
6.字符集不正確
要注意:
1.平時你在某些網站看到的文字可能有幾種編碼, 如你看到一個繁體字,它有可能是big5編碼,也有 可能是utf-8編碼的,更有可能是gb碼的,沒錯,也就是說有簡體編碼的繁體字,也有繁體編碼的簡體字,一定要了解這一點.
如果你是做一個簡體編碼的網頁,編碼定為GB2312,如果有香港和台灣地區的訪客提交繁體的信息,就可能會造成亂碼,解決方法就是(1)將網站編碼設為utf-8,這樣可以兼容世界上所有字符, (2)如果網站已經運作了好久,已有很多舊數據,不能再更改簡體中文的設定,那麼建議將頁面的編碼設為GBK,
GBK與GB2312的區別就在於:GBK能比GB2312顯示更多的字符,要顯示簡體碼的繁體字,就只能用GBK
7.jsp(SUN企業級應用的首選)連接MySQL(和PHP搭配之最佳組合)數據庫語句指定的編碼不正確
8.jsp(SUN企業級應用的首選)頁面沒有指定數據提交的編碼,就會造成亂碼:

所以,jsp(SUN企業級應用的首選)亂碼的原因無非就是以上幾種,知道原因之後,要解決jsp(SUN企業級應用的首選)亂碼的方法也容易多了
我們一一來表達:
1.如果安裝MySQL(和PHP搭配之最佳組合)的編碼已不能更改,很多朋友是購買虛擬主機建立網站,無權更改MySQL(和PHP搭配之最佳組合)的安裝編碼,這一關我們可以跳過,因為只要後面的步聚正確,一樣能解決亂碼問題
2.修改數據庫編碼,如果是數據庫編碼不正確: 可以在phpmyadmin 執行如下命令: ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
以上命令就是將test數據庫的編碼設為utf8
3.修改表的編碼:ALTER TABLE `category` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
以上命令就是將一個表category的編碼改為utf8
4.修改字段的編碼:
ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
以上命令就是將test表中 dd的字段編碼改為utf8
5.如果是這種情況容易解決,只需檢查下頁面,修改源文件的charset即可
, //這個正確就無問題了
6.這種情況也是修改頁面charset即可,
7.在jsp(SUN企業級應用的首選)連接數據庫的語句中,
private String url="jdbc:MySQL(和PHP搭配之最佳組合)://localhost/"+DB_NAME+" user="+LOGIN_NAME+"&password="+LOGIN_PASSWORD+"&characterEncoding=GBK"; //相鍵要看characterEncoding
8.這種亂碼的情況,只需在頁面開頭加上request.setCharacterEncoding("GBK"); 指定提交的即可

注意:按照以上方法修改以後只能保證你新插入的數據不會亂碼,舉個例:如果你用戶已提交的數據是BIG5,你卻想通過以上方法改為可以在GB2312的網頁正確顯示是不可能的, 這種文字內碼的變換只能通過另寫程序來解決,請WEB745.com其它相關文章


總結:先要判斷jsp(SUN企業級應用的首選)亂碼是插入數據庫之後亂碼,還是jsp(SUN企業級應用的首選)頁面剛提交過來就亂碼了,如果jsp(SUN企業級應用的首選)剛接收上一頁面的數據顯示就亂碼了,肯定是字符集不對,可者沒有加request.setCharacterEncoding("GBK");

如果是數據庫的原因就參考上面的2,3,4種方法

 


可能是編碼問題
這樣連接一下數據庫看看
jdbc:MySQL(和PHP搭配之最佳組合)://localhost:3306/xxxx useUnicode=true&characterEncoding=UTF-8
看看能否有效果

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved