struts1.0亂碼(不安全字符)


url內容是http://xxx.xxx.xx/test.do?name=%E6%B5%8B%E8%AF%95B
我做了一個action當接收中文的時候是可以的,
單如果傳遞值是%E6%B5%8B%E8%AF%95B的時候 就是亂碼了
這個值用 URLDecoder.decode()來解碼后是中文
可關鍵是 request.getParameter("name")的時候 獲得的就是亂碼
我加了這條語句也不行: 
 name=new String(name.getBytes("iso8859-1"),"gb2312"); 

如果 request.getParameter("name")獲得的值是 %E6%B5%8B%E8%AF%95  就好辦了
servlet也是這種情況

該怎么辦啊,

9 个解决方案

#1


首先確定頁面字符集是否為gbk,在進行調式

#2


同上,並且如果實在不知道是哪個字符集的話,就在傳之前把中文加密兩次,后台獲取后解密一次,這樣就可以保證字符集

#3


關鍵是傳遞值是對方決定的 都是這種不安全字符  我只能被動接收

#4


你應該知道傳過來的編碼格式吧,知道編碼格式后你在進行相應的轉換

#5


頁面編碼寫成UTF-8 中文過濾器UTF-8 盡量使用POST提交 一般不會出現中文亂碼問題 。

#6


你可以進入MyEclipse->Files and Editors->JSP,然后將Encoding的值改為UTF—8試一下...

#7


該回復於2012-07-25 16:18:21被版主刪除

#8


各位大哥 你們有沒有做過不安全字符這種類似於 %E6%B5%8B%E8%AF%95 這種值
哪位大哥能寫個action或者servlet 來接受這個值 %E6%B5%8B%E8%AF%95 
很簡單的 我給出例子
public class TestAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
String s=request.getParameter("name");
//s=URLDecoder.decode("%E6%B5%8B%E8%AF%95","utf-8"); 
System.out.println(s);
return null;
}
}
這是一個action ,
url是 http://localhost:8080/url/test.do?name=%E6%B5%8B%E8%AF%95
哪位大哥能接受成功,請告訴我一聲,我感激不盡,公司催的緊啊

如果直接 s=URLDecoder.decode("%E6%B5%8B%E8%AF%95","utf-8");
那 s=測試 
可關鍵是獲取不到啊 %E6%B5%8B%E8%AF%95 這個值

 麻煩各位大哥能抽出1,2分鍾來試一下 真的拜托了

EverWHL 這位大哥 編碼格式就是%E6%B5%8B%E8%AF%95 就傳這個值,

#9


各位大哥幫幫忙吧 這是我的QQ745648536 求求你們了

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com