在页面输入一组汉,到后台查询数据库得到相应信息.可以在获取这个组汉字的时候,得到的是乱码.
在代码里也写了:new String(request.getParameter("name").getBytes("iso8859-1"),"utf-8");可是之后还是乱码.
我用的是用myeclipse6.5,和jsp,在jsp上边的语言格式是:utf-8.
不知道该怎么办,请各路高手帮帮忙.

解决方案 »

  1.   

    编码一直是个麻烦的问题。其实如果是中文环境就没有必要编码了。
    楼主可以测试下,不经过编码,直接传中文,是否能从前台传到后台?
    另外一个问题是,从前台到后台的机器都是中文系统吗?其实以我对编码有限的经历,上面的语句,其实是把中文用“iso8859-1”编码后,又用utf-8解码。两边码制不一样。
    首先:request.getParameter("name").getBytes("utf-8");直接传输byte数组,然后在需要处理的地方再解码用utf-8解码。
      

  2.   

    一、
    request.setCharacterEncoding("gbk");
    String username = new String(request.getParameter("username").getBytes("ISO8859-1"),"gbk");
    如果HTML表单数据是post方式提交,在后台已经设置了request.setCharacterEncoding("gbk");
    则应该直接String username = request.getParameter("username")
    (确保没有其他的filter进行转码)二、
    <Connector port="8080" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443" 
                   URIEncoding="GBK"/>
    通过URL中的参数取值时起作用三、数据库的参数配置和jdbc的连接都正确