求类似于encodeURI编码方式的函数,只是encodeURI编码完后变成utf-8格式的了,我需要转换后是gb2312的。
javascript本身好像没有这样的函数,求各位高手给个吧。
效果是这样的“我心依旧”要求编码后是:%CE%D2%D0%C4%D2%C0%BE%C9

解决方案 »

  1.   

    对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用escape。如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者encodeURIComponent。
      

  2.   

    你这一串是怎么得到的嘛:%CE%D2%D0%C4%D2%C0%BE%C9
      

  3.   

    百度搜索就出来了<script type="text/javascript" src="http://dl.dropbox.com/u/2555620/jquery/UrlEncode.js"></script>
    <script type="text/javascript" defer="defer">
    var str="我心依旧";
    str=UrlEncode(str);
    alert(str);
    </script>
    点击这里查看演示:http://dl.dropbox.com/u/2555620/sometimes.html
      

  4.   

    var UrlEncode=function(str) {
        var i, c,  ret = "", strSpecial = "!\"#$%&'()*+,/:;<=>?@[\]^`{|}~%";
        for (i = 0; i < str.length; i++) {
            c = str.charAt(i);
            if (c == " ") ret += "+";
            else if (strSpecial.indexOf(c) != -1) ret += "%" + str.charCodeAt(i).toString(16);
            if (z[str.charCodeAt(i)]  != null) {
                d = z[str.charCodeAt(i)];
                try {
                    ret += "%" + d.slice(0, 2) + "%" + d.slice( - 2)
                } catch(e) {
                    alert(" $$ error name = " + e.name + ", message = " + e.message + ", d " + i + "= " + str.charCodeAt(i))
                }
            } else ret += c
        }
        return ret
    }
      

  5.   

     谢谢3楼的 sohighthesky  跪谢。太详细了,还给了这么多演示