[JSP ] Java中文輸出亂碼問題

看板java作者 (高級外勞)時間13年前 (2012/06/06 10:07), 編輯推噓3(305)
留言8則, 6人參與, 最新討論串1/1
各位版友好,小弟最近在用JAVA+JSP+TOMCAT寫一個簡單的網站 但在中文處理卻很頭大 一開始是資料庫塞進去變亂碼,後來搞定了, 現在又遇到一個奇怪的問題麻煩大家幫忙一下 問題一開始是我從表單輸入資料後submit,後端servlet 接到後要存入資料庫,其中有中文資料 假設username是中文 String s = request.getParameter("username"); 在Debug Window中看到字串s是正確的中文 但是如果用 Logger.info或是System.out.println印出來就變亂碼 再來另一個現象是假設我要印出一個Enum值是中文,例如 System.out.println(ItemTypeEnum.Armor.getChn()); logger.info(ItemTypeEnum.Armor.getChn()); 我把這2行放在一般的public static void main中跑,出來的是中文沒錯 但我如果把這2行放在處理request的method中 public String perform(HttpServletRequest request) { System.out.println(ItemTypeEnum.Armor.getChn()); logger.info(ItemTypeEnum.Armor.getChn()); } 出來就是亂碼。 這造成我塞進資料庫的也變成亂碼。 苦惱很久,是不是哪裡編碼沒注意呢? 還請版友大大們幫忙一下 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 99.6.133.155

06/06 10:29, , 1F
最簡單的方式,把你想得到的地方都設定 UTF-8
06/06 10:29, 1F

06/06 10:29, , 2F
還有,Tomcat 有某一版 post 會有編碼問題
06/06 10:29, 2F

06/06 10:51, , 3F
謝謝,我先換個Tomcat version試試
06/06 10:51, 3F

06/06 12:24, , 4F
好久遠..Servlet..您可能需要一個filter去過濾編碼...
06/06 12:24, 4F

06/06 12:41, , 5F
google "tomcat utf-8 encoding" 這個問題 ?
06/06 12:41, 5F

06/08 04:15, , 6F
設個過濾器, 不然你有100個網頁100個都要編碼太累...
06/08 04:15, 6F

08/14 17:14, , 7F
試試看在getParameter()之前加個
08/14 17:14, 7F

08/14 17:16, , 8F
request.setCharacterEncoding("utf-8");
08/14 17:16, 8F
文章代碼(AID): #1FphjSZH (java)