情况是这样的,这里只有后台,是通过http协议发送url,我这边拦截解析。不过总是出现乱码。开始的时候 改为 

nickname = new String(req.getParameter("nickname").getBytes("ISO8859-1"),"utf-8");

如果直接输入中文,出现乱码。
最后看到一篇解决乱码的文章,说是get传出 url中文参数的问题,必须先进过编码,然后接收端进行解码。所以想到了URLDecoder.decode(request.getParameter("nickname"), "utf-8")
我发送url的时候 用URLEncoder.encode(
"你有勇气回来" ,"UTF-8"); 进行编码 然后用上述的进行解码

相应的测试类
package event.test;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;

public class URLDecoderTest {

/**
* @throws UnsupportedEncodingException
*
* 函数功能说明
* 修改者名字 Administrator
* 修改日期 2013-1-22
* 修改内容
* @参数: @param args
* @return
* @throws
*
*/
public static void main(String[] args) throws UnsupportedEncodingException {
// TODO Auto-generated method stub
//将application/x-www-form-urlencoded字符串
//转换成普通字符串
//其中的字符串直接从上图所示窗口复制过来

//将普通字符串转换成
//application/x-www-form-urlencoded字符串
String urlStr =URLEncoder.encode(
"你有勇气回来" ,"UTF-8");
System.out.println(urlStr);
System.out.println("---------------------");
String keyWord =URLDecoder.decode(
"" +
"%E4%BD%A0%E6%9C%89%E5%8B%87%E6%B0%94%E5%9B%9E%E6%9D%A5","UTF-8");
System.out.println(keyWord);
}

}


这样传送到url的中文字符经过编码是以"%E4%BD%A0%E6%9C%89%E5%8B%87%E6%B0%94%E5%9B%9E%E6%9D%A5这样的方式进行出现的。
相应的应该用URLDecoder.decode(request.getParameter("nickname"), "utf-8")
进行解码 但是在本地是好的,能够解码得到中文,但是在linux服务器上得到的还是乱码。
最后又试了nickname = new String(req.getParameter("nickname").getBytes("ISO8859-1"),"utf-8"); 其实这里不用utf-8
因为通过ie高级设置中 一般通过utf-8发送。

不过我又试验了一下 代码如下
public static void main(String[] args) throws UnsupportedEncodingException {
String urlStr = URLEncoder.encode("你有勇气回来", "UTF-8");
System.out.println(urlStr);
System.out.println("---------------------");
String keyWord = URLDecoder.decode(""
+ "%E4%BD%A0%E6%9C%89%E5%8B%87%E6%B0%94%E5%9B%9E%E6%9D%A5",
"UTF-8");
System.out.println(keyWord);

System.out.println(new String(
"%E4%BD%A0%E6%9C%89%E5%8B%87%E6%B0%94%E5%9B%9E%E6%9D%A5"
.getBytes("ISO8859-1")));
}
中文“你有勇气回来”经过编码后为%E4%BD%A0%E6%9C%89%E5%8B%87%E6%B0%94%E5%9B%9E%E6%9D%A5
用decode方法正确解码得到所要的中文
但是用new String("%E4%BD%A0%E6%9C%89%E5%8B%87%E6%B0%94%E5%9B%9E%E6%9D%A5".getBytes("ISO8859-1"))得到的还是%E4%BD%A0%E6%9C%89%E5%8B%87%E6%B0%94%E5%9B%9E%E6%9D%A5 根本就没有解码

那相应的在 linux服务器上,进过encode编码的中文 应该有decode进行解码,不过却没有用到 而是用的

System.out.println(new String(
"%E4%BD%A0%E6%9C%89%E5%8B%87%E6%B0%94%E5%9B%9E%E6%9D%A5"
.getBytes("ISO8859-1"))

我想通过ie发送的时候 已经在ie内部经过了相应的解码 就已经调用了decode方法,具体的是怎么样 请各位看客指点。