項(xiàng)目使用的是UTF-8編碼,用get方式提交的時(shí)候發(fā)現(xiàn)URL中如果有中文,響應(yīng)頁面將得到亂碼。然后在tomcat的server.xml中添加了get方式和url訪問解決亂碼的方式useBodyEncodingForURI="true",
并在響應(yīng)頁面中添加了request.setCharacterEncoding("GB2312");//亂碼轉(zhuǎn)換
response.setContentType("text/html;charset=GB2312");
response.setCharacterEncoding("GB2312");但是得到的還是亂碼。
后來把項(xiàng)目改成GB2312編碼,get方式提交可以得到正常的中文。后來通過百度和googl的編碼得到了啟發(fā)。百度中輸入中文搜索,url中顯示的是中文。google輸入中文進(jìn)行搜索,url中顯示的是帶%的編碼。說明百度用的是GB2312編碼,中文可以正常解析。google用的是UTF-8編碼,所以需要對中文進(jìn)行轉(zhuǎn)碼。
下面是我項(xiàng)目中的解決方案:
1、在請求頁面中把中文參數(shù)進(jìn)行轉(zhuǎn)碼
如:String content="測試短信";
content=URLEncoder.encode(content,"UTF-8");
2、在接收參數(shù)的響應(yīng)頁面進(jìn)行中文參數(shù)的解碼
如:String message= URLDecoder.decode(request.getParameter,"UTF-8");
經(jīng)過這次的問題,個(gè)人認(rèn)為還是用GB2312編碼比較省事。
posted on 2011-09-30 11:34
kelly 閱讀(1516)
評論(0) 編輯 收藏 所屬分類:
java