首页 > 开发 > JS > 正文

完美解决JS中汉字显示乱码问题(已解决)

2024-09-06 12:43:59
字体:
来源:转载
供稿:网友
如题,刚才看了几篇大家的讨论,忽然也想起要将自己最近研究的问题贴出来,凡是和JS中乱码相关的问题都发到这里把,大家一起研究。:)
场景一:write写出来的内容是utf-8格式的,如果保存的write数据中有不是utf-8编码的中文,对write嵌套俩次以上就会有乱码。由于手头没有现成的文件,刚才临时制作了一个,这是1.htm页面的代码: 
代码如下:<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<script language="JavaScript" src="1.js"></script> 
</head> 
<body onload=myjs(1)> 
</body> 
</html>
这是引用的1.js文件代码,俩个文件均用简体中文保存而不是utf-8
代码如下://这是JS递归自写过程中汉字乱码的演示程序 
//不光是中文内容不行,就连注释如果是中文有时候也不行 
//感觉JS一碰上中文就变得很不稳定=_=' 
//Dec. 29th 2005 created by shouhaimu(QQ:30836570) 
function myjs(i) 

    var t="<html>/n"; 
    t+="<head>/n"; 
    t+="<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>/n"; 
    t+="<script language='JavaScript' src='1.js'></script>/n"; 
    t+="</head>/n"; 
    t+="<body>/n"; 
    t+="<input type=button onclick=myjs("+(i+1)+" value='这是演示程序,已经运行了"+i+"次!'>/n"; 
//上面这行如果改成下面这句就可以正常显示,看来确实是JS对汉字的支持不够好: 
//t+="<input type=button onclick=myjs("+(i+1)+" value='This is my code,it has run "+i+" times!'>/n"; 
    t+="</body>/n"; 
    t+="</html>/n"; 
    document.open(); 
    document.write(t); 
    document.close(); 
} 运行第2次以上就会有乱码。
场景二:通过XMLHTTP获取文件后再输出时,如果该文件包含中文信息并按gb编码,显示时中文信息会是乱码。
js代码如下:(注释是发贴子时候加的,如果怕干扰可以去掉)
代码如下:<SCRIPT language="JavaScript" type="text/JavaScript"> 
self.onerror=null; 
var Http = new ActiveXObject("Microsoft.XMLHTTP"; 
Http.open("GET",URL,false);      //URL是您需要获取的页面的网址 
Http.send(); 
document.write(Http.responseText); 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表