日期:2014-05-18  浏览次数:20488 次

网站总体编码用的是UTF-8这个是不能改的!在js的一个函数里要用到document.write();输出一些汉字却得到的是乱码怎么解决?
网站总体编码用的是UTF-8(这个是不能改的!)在js的一个函数里要用到document.write(),来输出一些汉字,却得到的是乱码!怎么解决?

------解决方案--------------------
meta加上charset
行不?
------解决方案--------------------
document.write(escape('汉字试试'));
------解决方案--------------------
哦不好意思,测试了一下,上面这句只能在传递参数时使用,直接document.write('汉字'),---- 没有乱码啊 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
------解决方案--------------------
不能改就不知道了,我的话会改那个utf-8
------解决方案--------------------
注意全站编码统一!
------解决方案--------------------
<script charset="gb2312" >

------解决方案--------------------
学习一下
------解决方案--------------------
探讨
<script charset="gb2312" >

------解决方案--------------------
把js文件保存成utf-8编码,不行存为unicode
------解决方案--------------------
没别的办法的话,这样办
JScript code

<script language="javascript">
         function example()
         {
                var msg=EncodeUtf8("叫你转换不成,强制转换你,嘿嘿");
                alert(msg);
          }
     function EncodeUtf8(s1)
        {
            var s = escape(s1);
            var sa = s.split("%");
            var retV ="";
            if(sa[0] != "")
            {
                retV = sa[0];
            }
            for(var i = 1; i < sa.length; i ++)
            {
                if(sa[i].substring(0,1) == "u")
                {
                    retV += Hex2Utf8(Str2Hex(sa[i].substring(1,5)));
                       
                }
                else retV += "%" + sa[i];
            }
              
            return retV;
        }
        function Str2Hex(s)
        {
            var c = "";
            var n;
            var ss = "0123456789ABCDEF";
            var digS = "";
            for(var i = 0; i < s.length; i ++)
            {
                c = s.charAt(i);
                n = ss.indexOf(c);
                digS += Dec2Dig(eval(n));
                   
            }
            //return value;
            return digS;
        }
        function Dec2Dig(n1)
        {
            var s = "";
            var n2 = 0;
            for(var i = 0; i < 4; i++)
            {
                n2 = Math.pow(2,3 - i);
                if(n1 >= n2)
                {
                    s += '1';
                    n1 = n1 - n2;
                }
                else
                s += '0';
                  
            }
            return s;
              
        }
        function Dig2Dec(s)
        {
            var retV = 0;
            if(s.length == 4)
            {
                for(var i = 0; i < 4; i ++)
                {
                    retV += eval(s.charAt(i)) * Math.pow(2, 3 - i);
                }
                return retV;
            }
            return -1;
        } 
        function Hex2Utf8(s)
        {
            var retS = "";
            var tempS = "";
            var ss = "";
            if(s.length == 16)
            {
                tempS = "1110" + s.substring(0, 4);
                tempS += "10" +  s.substring(4, 10); 
                tempS += "10" + s.substring(10,16); 
                var sss = "0123456789ABCDEF";
                for(var i = 0; i < 3; i ++)
                {
                    retS += "%";
                    ss = tempS.substring(i * 8, (eval(i)+1)*