像百度的搜索框,在里面输入"中文"后,在url中会有输入的"中文",现在想把url中的中文转码成utf8的编码,我写了一个转码类,但是不知道转码在项目中使用,我用的struts1.2.类的代码如下:package com.kuqu88.struts.util;
//java url 编码转换
public class UrlTools {
public static String str="";
public static String str1="";
public String urlcoder(String url)
{
String url1=url;
String url2=url1.substring(0,url1.indexOf("?")+1);
String url3=url1.replaceAll("\\?", "&");
str="";
str1="";
String paramname[]=this.urlcoderparmname(url3).split("\\+");
//System.out.println("paramname.length="+paramname.length);
String values[]=this.urlcoderstr(url1).split("\\+");
// System.out.println("values.length="+values.length);
for(int i=0;i<paramname.length;i++){
if(i==0){
url2=url2+paramname[i]+"="+values[i];
}else{
url2=url2+"&"+paramname[i]+"="+values[i];
}
}
return url2;
}
public String urlcoderstr(String parm)
{
// System.out.println("进入方法");
if(parm.indexOf("=")>=0){
if(parm.indexOf("&")>=0){
str=str+"+"+java.net.URLEncoder.encode(parm.substring(parm.indexOf("=")+1,parm.indexOf("&")));
this.urlcoderstr(parm.substring(parm.indexOf("&")+1,parm.length()));
}else if(parm.indexOf("&")<0){
str=str+"+"+java.net.URLEncoder.encode(parm.substring(parm.indexOf("=")+1,parm.length()));
}
}
return str.substring(1,str.length());
}
public String urlcoderparmname(String parm){
// System.out.println("进入方法");
if(parm.indexOf("&")>=0){
if(parm.indexOf("=")>=0){
str1=str1+"+"+parm.substring(parm.indexOf("&")+1,parm.indexOf("="));
this.urlcoderparmname(parm.substring(parm.indexOf("=")+1,parm.length()));
}
}
return str1.substring(1,str1.length());
}
public static void main(String[] args) {
UrlTools ut = new UrlTools();
System.out.println(ut.urlcoder(" http://service.zjjs.net/list.asp?class=交通信息&showtype=2&page=2"));
System.out.println(ut.urlcoder(" http://www.baudu.com/list/jsp?search=交通信息"));
}
}
希望高手指点,感激不尽!高分送上,如果可以,分数还可以增加,谢谢!