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

(急)中文字符问题
我用的是中文模糊查询,链接地址是http://localhost:8084/school/system/admin/SchoolList.do?content=%E5%94%90%E5%B1%B1%E5%B8%82&condition=s_addr
第一次查询成功
我用request.setAttribute( "path ", "../../system/admin/SchoolList.do?condition= "+
                            request.getParameter   ( "condition ").toString   ()   + "&content= "+
                            request.getParameter   ( "content ").toString   ()+
                            "& ");
再次得到的形式为:http://localhost:8084/school/system/admin/SchoolList.do?condition=s_addr&content=唐山市&pageNum=2
结果查询语句里有乱码
怎么在java中将“唐山市”再次转换为%E5%94%90%E5%B1%B1%E5%B8%82

------解决方案--------------------
String s1=new String(s.getBytes(), "ASCII ");
不知道这样行不行
------解决方案--------------------
得到getParameter( "condition ")后先Decoder一下~~
------解决方案--------------------
统一楼上的!就是那个方法!
------解决方案--------------------
我是将中文“唐山市”转化成和submit提交后的一样,即:%E5%94%90%E5%B1%B1%E5%B8%82
不是把它转化成中文
------解决方案--------------------
要是用JSP页面中的JS代码提交的话,先转码
var contentStr=encodeURIComponent(content);
然后再 "http://localhost:8084/school/system/admin/SchoolList.do?condition=s_addr&content= "+contentStr+ "Str&pageNum=2 "
------解决方案--------------------
用下面方法的转换一下
public String chStr(String str){
if(str==null){
str= " ";
}else{
try{
str=(new String(str.getBytes( "iso-8859-1 "), "GB2312 ")).trim();
}catch(Exception e){
e.printStackTrace(System.err);
}
}
return str;
}