javascript location.href传递中文参数乱码问题

不知道怎么解决了?求高手。。。

//fn是从页面文本框中取得的值
    fn=obj[i].value;
 location.href= ("upload/editUpload/"+fn);

 错误:

  http://localhost:8080/T8/upload/editUpload/%E6%96%B0%E5%BB%BA%E6%96%87%E6%9C%AC%E6%96%87%E6%A1%A3 
 url = encodeURI("upload/editUpload/"+fn);
 location.href= url;

传递中文也不是这么传吧,,一般解决办法就是encodeURIComponent(fn),一次不行,,就2次