我用JSP从数据库中读了一个表的一列,这一列全是中文,在oracle中类型是CHAR(14),例如:兰陵、兰州等。
把这个字符串存在JSP的一个下拉列表中。到这一步都没有问题,能够正常显示。
下一步,我从下拉列表中选择这个地名,到数据库中查询时就出错。
代码:
String sql_FJKCZMC=request.getParameter("FJKCZMC");
的到的是乱码。
并且我在前面加了:
<%@ page contentType="text/html;charset=gb2312" session="true"%> request.setCharacterEncoding("gb2312");
都不行,寻高手解决~~~~~~

解决方案 »

  1.   

    我往列表中存的代码如下:
    <select name=FJKCZMC size="1">
        <option value="">全部</option>
        <%while (rs_FJKCZMC.next()){
    %>
        <option value='<%=rs_FJKCZMC.getString(1)%>' <%if(sql_FJKCZMC.equals(rs_FJKCZMC.getString(1))) out.print(" selected ");%>><%=rs_FJKCZMC.getString(1)%> </option>
        <%
    }%>
          </select>
      

  2.   

    在页面进行传递的时候,还是使用默认的ISO8859_1的编码,这是浏览器自己处理的,类似Text等没有问题,类似Radio,Select,Chekbox就会有问题。解决方法有两种:
    1,对使用的String直接转换,在Action中使用
    String s=new String(request.getParameter("param").getBytes("ISO8859_1"),"GB2312").toString();2,在Tomcat中使用Filter,对所有的String强行进行Encoding的处理。
    具体资料网络上比较多,可以搜一下Filter Encoding。
    祝你好运。