请教一下,有谁碰到过escape编码的问题?我是这样写的
var gjz = document.getElementById('cxgjz').value;
var gjzjm = escape(gjz);document.location="....?gjz='+gjzjm+'";这样写了后,在有的浏览器上是正常的,但在有些浏览器上输入中文字就会报js错误。调试进去就是最后一句有问题,但不知道怎么改,在网上查了一下说是编码的问题,但还是不知道怎么解决。
各位有没有碰到过这样的情况?该怎么解决?

解决方案 »

  1.   

    参考...返回值
    已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列。说明
    该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。其他所有的字符都会被转义序列替换。
      

  2.   

    不知道改换另外一种编码方式是否可行:
    var gjzjm =encodeURIComponent(gjz);
    或者
    var gjzjm =encodeURI(gjz);
      

  3.   

    另外,可能的话,文件本身的编码改为UTF-8试试看
      

  4.   

    document.location="....?gjz='+gjzjm+'";
    这句子语法错误吧,
    document.location='....?gjz='+gjzjm;
    编码的话就不清楚了
      

  5.   

    document.location="....?gjz="+gjzjm;
    改成这样试下,至于编码的可以用 java.net.URLDecoder.decode(c, "utf-8");