作者IMPOSSIBLEr (高級外勞)
看板java
標題[JSP ] Java中文輸出亂碼問題
時間Wed Jun 6 10:07:22 2012
各位版友好,小弟最近在用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