日期:2014-05-18  浏览次数:20688 次

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

request.setCharacterEncoding( "gb2312 ");
都不行,寻高手解决~~~~~~

------解决方案--------------------
在页面进行传递的时候,还是使用默认的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。
祝你好运。