科技 2007-07-13 ChenReal 2661

JSP Request.getParameter中文乱码的误区


Request.getParameter会出现乱码 这个问题频频出现在非UTF-8编码的程序里头。 网上一般的解决方法有三个:

  • 1、全部转成UTF-8
  • 2、request. setCharacterEncoding("GBK");
  • 3、String s=new String(request.getPrarameter("s").getBytes("ISO-8859-1"),"GB2312");

但是最近发现用了方法1仍然还会出现中文“乱码”的问题!

郁闷了多天后忽然恍然大悟——自己陷入了一个误区。

在gb2312的时候,我们习惯于这样的测试方法

test.jsp?s=测试

但在UTF-8则不同,必须加入urlEncode方可获得正确的中文编码。如果需要测试的话,最佳的方法还是

<form method="get" action="test.jsp">
  <input name="s"/>
</form>

评论 (2)

2007-07-16 05:23

知道就好~jsp一般都是统一先进行编码处理的,要不然会乱码问题出现,\r 看来这个符合你的风水+人品理论

chenreal

2007-07-16 09:47

海GG,你没明白我的意思……\r 在GBK下:test.jsp?s=测试 是没问题的,但是在UTF-8下不行,需要变成 —— test.jsp?s=%E6%B5%8B%E8%AF%95\r 你还是回去练你的“慢性化骨绵掌”算了,嘿嘿

发表评论

验证码
返回