我用JSP从数据库中读了一个表的一列,这一列全是中文,在oracle中类型是CHAR(14),例如:兰陵、兰州等。
把这个字符串存在JSP的一个下拉列表中。到这一步都没有问题,能够正常显示。
下一步,我从下拉列表中选择这个地名,到数据库中查询时就出错。
代码:
String sql_FJKCZMC=request.getParameter("FJKCZMC");
的到的是乱码。
并且我在前面加了:
<%@ page contentType="text/html;charset=gb2312" session="true"%> request.setCharacterEncoding("gb2312");
都不行,寻高手解决~~~~~~
把这个字符串存在JSP的一个下拉列表中。到这一步都没有问题,能够正常显示。
下一步,我从下拉列表中选择这个地名,到数据库中查询时就出错。
代码:
String sql_FJKCZMC=request.getParameter("FJKCZMC");
的到的是乱码。
并且我在前面加了:
<%@ page contentType="text/html;charset=gb2312" session="true"%> request.setCharacterEncoding("gb2312");
都不行,寻高手解决~~~~~~
<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>
1,对使用的String直接转换,在Action中使用
String s=new String(request.getParameter("param").getBytes("ISO8859_1"),"GB2312").toString();2,在Tomcat中使用Filter,对所有的String强行进行Encoding的处理。
具体资料网络上比较多,可以搜一下Filter Encoding。
祝你好运。