如何在一个utf-8编码的HTML中 在javascript中url跳转时把url中的汉字改为GBK编码

2025-01-07 23:52:49
推荐回答(3个)
回答1:

html文件中私用JavaScript将url的汉子转为为GBK编码,主要是通过改变GBK的编码方式来实现,代码如下:

function urlencode(str, charset, callback) {
    //创建form通过accept-charset做encode
    var form = document.createElement('form');
    form.method = 'get';
    form.style.display = 'none';
    form.acceptCharset = charset;
    var input = document.createElement('input');
    input.type = 'hidden';
    input.name = 'str';
    input.value = str;
    form.appendChild(input);
    form.target = '_urlEncode_iframe_';
    document.body.appendChild(form);
    //隐藏iframe截获提交的字符串
    if (!window['_urlEncode_iframe_']) {
        var iframe = document.createElement('iframe');
        //iframe.name = '_urlEncode_iframe_';
        iframe.setAttribute('name', '_urlEncode_iframe_');
        iframe.style.display = 'none';
        iframe.width = "0";
        iframe.height = "0";
        iframe.scrolling = "no";
        iframe.allowtransparency = "true";
        iframe.frameborder = "0";
        iframe.src = 'about:blank';
        document.body.appendChild(iframe);
    }
    //
    window._urlEncode_iframe_callback = callback;
    //设置回调编码页面的地址,这里需要用户修改
    form.action = 'getEncodeStr.html';
    form.submit();
    setTimeout(function() {
        form.parentNode.removeChild(form);
        iframe.parentNode.removeChild(iframe);
    }, 500)
}

回答2:

使用encodeURI(str)进行URL编码

回答3:

处理乱码?为什么要转为gbk呢?直接这样encodeURI(encodeURI(name));转,然后这样java.net.URLDecoder.decode(request.getParameter("name"),"UTF-8");取出来不行吗?