var str="你好"         // 此编码为Unicode;
我想知道怎么将它转换成GB2312的编码

解决方案 »

  1.   

    结果是 %E6%B5%A3%E7%8A%B2%E3%82%BD,自己看代码L@_@K
    <!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> new document </title>
        <meta name="generator" content="editplus" />
        <meta name="author" content="[email protected]" />
        <meta name="keywords" content="" />
        <meta name="description" content="" />
        <!-- 这句是关键! -->
        <meta http-equiv="content-type" content="text/html;charset=gb2312">
    </head>
    <body>
    <script type="text/javascript">
    <!--
    var hello = "你好";
    document.write(document.charset + "<br />");
    document.write(encodeURI(hello));// gb2312
    // %E6%B5%A3%E7%8A%B2%E3%82%BD// utf-8
    // %E4%BD%A0%E5%A5%BD//-->
    </script>
    </body>
    </html>
      

  2.   

    如果不加那个 meta,结果就是 utf-8 %E4%BD%A0%E5%A5%BD!Web 开发常用手册DHTML 参考手册
    http://download.csdn.net/source/308913JScript 语言参考
    http://download.csdn.net/source/308916CCS 样式表中文手册
    http://download.csdn.net/source/304124
      

  3.   

    有没有<meta http-equiv="content-type" content="text/html;charset=gb2312">都不影响 encodeURI 或 encodeURIComponent 的结果javascript 没有直接能获取字符 gbk 编码结果的方法.
    ----------------------------------
    如果在 IE 下,可以借助 VBScript 的 Asc 来获得.如果允许延迟, 可以使用 form 以 GET 方式提交到 iframe 后,从 iframe 的地址中截取 queryString 部分.也可以用 ajax 提交到服务端,在服务器返回相应编码结果 (不推荐).这里有个例子,是利用 flash 来获得
    http://www.ialvin.cn/util/py.htm还有一个方案是,构造带多字节字符的 URI, 由浏览器获取资源时自动编码后,再截取
    http://topic.csdn.net/u/20100319/15/c3c839f3-7f0b-424b-ae2e-8e1a084e2780.html上面这些方法,都带有些缺点
    -----------------------------------
    目前较流行的是,加入一个映射表,通过查表来获得. 比较稳妥,但就是代码体积大了,并且多数只包含gb2312集,gbk中的一些生僻字可能...
    http://download.csdn.net/source/1844165
      

  4.   

    我是想问用JavaScript去转换 不是在页面里面设置编码格式
      

  5.   


    对不起, 你不能使用javascript来转换编码
      

  6.   

    能啊 这样做就可以了var str="你好";
    str = str.replace(/[^\u0000-\u00FF]/g, function($0) { return escape($0).replace(/(%u)(\w{4})/gi, "&#x$2;") });然后就可以了
    哎没办法 这分就当送给你们了
      

  7.   

    是的,js不能转换编码,如果是不同编码的页面之间表单提交的话,可以用另外一种办法解决http://www.cnblogs.com/kaima/articles/1386052.html
      

  8.   

    7楼那不是GB2312b编码,那是字参码。
      

  9.   

    你这个只是把UNICODE编码替换出来而已.
    JS内部只有UNICODE编码.不能变更的...
      

  10.   


    var str = "你好";
    str = str.replace(/[^\u0000-\u00FF]/g, function($0) { return escape($0).replace(/(%u)(\w{4})/gi, "&#x$2;") });
    楼主的所提问题跟这个答案    似乎完全搭不上道
      

  11.   

    为啥要转码呢,统一uri编码比较好