看板 java 關於我們 聯絡資訊
各位版友好,小弟最近在用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
PsMonkey:最簡單的方式,把你想得到的地方都設定 UTF-8 06/06 10:29
PsMonkey:還有,Tomcat 有某一版 post 會有編碼問題 06/06 10:29
IMPOSSIBLEr:謝謝,我先換個Tomcat version試試 06/06 10:51
jej:好久遠..Servlet..您可能需要一個filter去過濾編碼... 06/06 12:24
hgs1906:google "tomcat utf-8 encoding" 這個問題 ? 06/06 12:41
bera:設個過濾器, 不然你有100個網頁100個都要編碼太累... 06/08 04:15
edward5431:試試看在getParameter()之前加個 08/14 17:14
edward5431:request.setCharacterEncoding("utf-8"); 08/14 17:16