gbk文件中,怎么用js代码把 中国 转化成 %D6%D0%B9%FA
thanks

解决方案 »

  1.   

    这样吧
    echo '<script>document.write(encodeURI("中国"));</script>';
      

  2.   

    不过得出的结果是这样的:
    %E4%B8%AD%E5%9B%BD
      

  3.   


    这个结果是在js code中gb2312编码下的值要的到lz的值 就需要用php中urlencode不过通过自己写函数 也是可以实现的
    下面是网上的链接 希望对lz有帮助
    http://www.imphper.cn/imphper-php-view.php?view=single&id=338
      

  4.   

    谁能提供下 此功能的js的函数?
    thanks
      

  5.   

    不知道我的代码是否符合,没有用jquery,可能看着代码有点多,你也可以用jquery,为了方便我是在php页面写的,你可以将两种代码分离<?php
    $filename = substr($_SERVER['SCRIPT_NAME'], 1);
    if(isset($_POST['urlencode'])){
    $s = $_POST['s'];
    $s = iconv('utf-8', 'gbk', $s); //可以做适应的转码,判断汉字的编码格式可以用strlen()来判断gbk==2, utf-8==3
    echo urlencode($s);exit;
    }
    ?>
    <input type="hidden" id="returns">
    <script>
    var request;
    function createxmlHttpRequest(){
    if(!request){
    if(window.XMLHttpRequest){
    request = new XMLHttpRequest();
    }else{
    request = new ActiveXObject("Microsoft.XMLHTTP");
    }
    }
    }function post(url, send){
    createxmlHttpRequest();
    request.open("post", url, false);
    request.onreadystatechange = callback;
    request.setRequestHeader("content-type", "application/x-www-form-urlencoded");
    request.send(send);
    }function callback(){
    if (request.readyState == 4){
    if (request.status == 200){
    document.getElementById("returns").value = request.responseText;
    }else{alert('error');}
    }
    }
    function urlencode(s){
    var url = "<?php echo $filename; ?>";
    var send = "urlencode=1&s=" + encodeURI(s);
    post(url, send); alert(document.getElementById("returns").value);
    }
    urlencode('中国');
    </script>
      

  6.   

    通过form提交指定编码,异步处理的方法。
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>UTF8页面采用GB2312编码实例</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    </head>
    <body>
        <input id="text_value" type="text" value="zswang 路过!"/>
        <input id="text_code" type="text" readonly="readonly"/>
        <input id="button_escape" type="button" value="转换" onclick="button_escape_Click();"/>
    <script>
    function button_escape_Click() {
        escapeEx(document.getElementById("text_value").value, "GB2312");
    }function escapeEx(params, charset) {
        if (document.all)
            var iframe = document.createElement("<iframe name='iframe_encode'></iframe>");
        else {
            var iframe = document.createElement("iframe");
            iframe.name = "iframe_encode";
        }
        var form = document.createElement("form");
        form.action = "#";
        form.method = "GET";
        document.body.appendChild(form);
        var input = document.createElement("input");
        input.name = "wd";
        input.value = params;
        form.appendChild(input);
        form.target = "iframe_encode";
        form.acceptCharset = charset;
        iframe.style.visibility = "hidden";
        form.style.visibility = "hidden";
        document.body.appendChild(iframe);
        if (document.all) {
            var old = document.charset;
            document.charset = charset;
            form.submit();
            document.charset = old;
        } else form.submit();
    }function outCode(code) {
        document.getElementById("text_code").value = code;
    }
    (function() {
        var params = /\?wd=(.*?)(#|$)/.exec(location);
        if (params) {
            parent.outCode(params[1]);
        }
    })();
    </script>
    </body>
    </html>
      

  7.   

    多谢楼上的,
    可 你写的
    escapeEx函数中 document.body 我这里没有,
    因为我只是在 一个.js的gbk文件写函数,
      

  8.   

    myeclipse里面
    js文件中
    ctrl+shift+f格式化后中文就变成那样的了
      

  9.   

    function gb2312(key)
    {
      var r = "";
      for(var i=0;i<key.length;i++)
      {
      var t = key.charCodeAt(i);
      if(t>=0x4e00 || t==0x300A || t==0x300B)
      {
      try
      {
      execScript("ascCode=hex(asc(\""+key.charAt(i)+"\"))", "vbscript"); r += ascCode.replace(/(.{2})/g, "%$1"); }
      catch(e)
      {}
      }
      else{r += escape(key.charAt(i))}
      }
      return r;
    }document.write(gb2312('中国')); //%D6%D0%B9%FA