问题描述
弱弱的向各位大侠问一声,在Eclipse的window->preferences中可以将jspfile的encoding设置为GB2312吗?因我先前设置的是UTF-8,很多情况总出现Request获取参数,或者Session对象获取参数时,如果参数为unicode双字节编码(如汉字),则获取的参数值显示为乱码?拜读了耿详义老师的书,据他阐述,将jsp标识设为:Charset=GB2312,即可解决Request对象获取unicode双字节编码问题.可在Eclipse中,我在window->preference中找不到可以设置为GB2312编码的方法.求各位大侠指教,或者其他什么途径可以解决这个jsp中request获取参数汉字乱码问题.
解决方案
解决方案二:
昏死,jspfile编码指的是文件编辑时候使用的编码,而不是你在编程中参数编码request参数的编码要再行设置的啊,这个是自己google吧
解决方案三:
我明白是文件编码啊,因为你在程序解码时使用bytec[]=string.getBytes("ISO-8859-1"),这个"ISO-8859-1"就是对GB2312解码,如果你的文件编码为UTF-8,岂不和你所使用的内置对象request,response等编码和解码方式不同?我就是想在Eclipse中将JSPfile的编码也变成GB2312,这样就一致了啊.
解决方案四:
文件编码用utf-8或是默认的GBK就好了。jsp中request获取参数汉字乱码问题只要传参和接受参数之前都设置一下编码就可以了。
解决方案五:
顶楼上~!~
解决方案六:
引用2楼deoline的回复:
我明白是文件编码啊,因为你在程序解码时使用bytec[]=string.getBytes("ISO-8859-1"),这个"ISO-8859-1"就是对GB2312解码,如果你的文件编码为UTF-8,岂不和你所使用的内置对象request,response等编码和解码方式不同?我就是想在Eclipse中将JSPfile的编码也变成GB2312,这样就一致了啊.
这个说的对啊。一般来说用gbk或者ISO-8859-1都是支持中文的,主要是为了支持中文的文字。
解决方案七:
楼上好像说的不对啊,iso-8859-1支持中文吗?好像不吧!http底层默认好像是iso-8859-1来传输的,这个偶没验证过。你的请求要看是get还是post的,get的编码在服务器端也要一致,post只用在客户端一致就好。个别时候不明原因的乱码,就只有转码了;不知道从什么字符集转成什么字符集,就全部都写下,打印出来,呵呵,看到哪个对,就用那个!推荐使用的字符集,utf-8,gbk,gb2312
解决方案八:
utf-8是最功能的了
解决方案九:
你把JSP页面代码设置成GBK,在Servlet里面转换代码就可以了!如://获得参数"word",然后再转换回来,word可以是中文!就算是网址传参也没问题!Stringword=request.getParameter("word");word=newString(word.getBytes("ISO-8859-1"));给你看我的Servlet完整代码:packagecom.fit.biz;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.fit.Item.TieZi;importcom.fit.dao.DaoFactory;importcom.fit.dao.intf.ForumInterface;importcom.fit.entity.User;importcom.fit.util.NextPageUtil;publicclassSearchextendsHttpServlet{@OverrideprotectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doGet(request,response);}@OverrideprotectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{StringpageIdStr=request.getParameter("pageId");Stringword=request.getParameter("word");word=newString(word.getBytes("ISO-8859-1"));Stringchoice=request.getParameter("choice");ForumInterfacedao=DaoFactory.createForumDao();if("user".equals(choice)){NextPageUtil<User>nextPageUser=dao.searchUserByWord("users",word,pageIdStr,"nickName","user_id");request.setAttribute("nextPageUser",nextPageUser);}elseif("message".equals(choice)){NextPageUtil<TieZi>nextPageTieZi=dao.searchTieziByWord("messages",word,pageIdStr,"publishtime","message_id");request.setAttribute("nextPageTieZi",nextPageTieZi);}request.setAttribute("word",word);request.setAttribute("choice",choice);request.getRequestDispatcher("search.jsp").forward(request,response);}}
解决方案十:
哎,我使用的是UTF-8编码方式,在request和response之前都使用了request.setCharacterEncoding("UTF-8"),但感觉好像时灵时不灵,把我整郁闷了.也不知道还有没有更好的解决方案.这时灵时不灵,让我不放心啊.用的是心惊胆颤.
解决方案十一:
该回复于2010-10-29 16:24:10被版主删除
解决方案十二:
汗。。。。。
解决方案十三:
我来学习的……
解决方案十四:
学习一下了,真是不知道的太多了
解决方案十五:
在Web.xml里面配置过滤器可以吗
解决方案:
最简单的一招:Strings=request.getAttribute("param");s=newString(s.getBytes("ISO-88591"),"UTF-8");
解决方案:
配置过滤器最方便
解决方案:
我也是啊,eclipse的控制台输出的都是乱码www.0755bst.net