网站总体编码用的是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" >
------解决方案--------------------------------------------------------
学习一下
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
把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)*8); retS += sss.charAt(Dig2Dec(ss.substring(0,4))); retS += sss.charAt(Dig2Dec(ss.substring(4,8))); } return retS; } return ""; } <script>