如何解码Java中url发送的特殊字符?

时间:2017-02-20 07:53:28

标签: java

我在url解析中将我的jsp中的值发送到我的servlet。

该值包含特殊字符(),但当我收到该值时,它为&#40&#41

如何将此解码回()

jsp代码

var devicename=document.getElementById('s_loc_1').value;    
    var param=devicename;
    param=encodeURIComponent(devicename);
    var updatedevsaturl="http://"+window.location.host+"/services/PCEquipmentDevice?productid={}&action=updatePCDeviceStatus&reqby={}&param="+param;
    var productId=document.getElementById('pid').value;
    updatedevsaturl=sustituteParameter(updatedevsaturl,productId);
    updatedevsaturl=sustituteParameter(updatedevsaturl,userUpi);
    alert(updatedevsaturl);
    $.ajax({
        type : "GET",
        timeout:20000,
        url : updatedevsaturl,
        async: false,
        dataType : "xml",
        success: function(data) {   }, error: function (xhr, ajaxOptions, thrownError) {
            alert('Service Unavailable - VPU List');
        }
    });

要解码的java代码

if(action.equals("updatePCDeviceStatus")){
        System.out.println("param: "+param);
        //String decodeparam3 = new String(param.getBytes("UTF-8"),"ASCII");
        //String decodeparam3 =URLDecoder.decode(param, "UTF-8");
        String decodeparam3= URLDecoder.decode(param, "ISO-8859-1");    
        System.out.println("decodeparam132 "+ decodeparam3);

我尝试了网上的所有方式,但没有工作中的代码

输入jsp二合一笔记本电脑(12.5英寸) 在servlet 2合1笔记本电脑&#4012.5英寸&#41

输出

1 个答案:

答案 0 :(得分:0)

这是“(”的ASCII代码。请看这个答案Java: How to unescape HTML character entities in Java?。你必须从那个html实体创建一个字符。