jQuery技术

美满办理JS中汉字表现乱码题目(已办理)

字号+ 作者:H5之家 来源:H5之家 2015-11-16 10:22 我要评论( )

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

◎ 首页 > 网页制作 > 网页特效 > INTRODUCE

美满办理JS中汉字表现乱码题目(已办理)

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

如题,适才看了几篇各人的接头,突然也想起要将本身最近研究的题目贴出来,往往和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); 
</SCRIPT> 
其后用VBS办理,改成如下: 
<SCRIPT language="VBScript" type="text/VBScript"> 
Function bytes2BSTR(vIn) 
strReturn = "" 
For i = 1 To LenB(vIn) 
ThisCharCode = AscB(MidB(vIn,i,1)) 
If ThisCharCode < &H80 Then 
strReturn = strReturn & Chr(ThisCharCode) 
Else 
NextCharCode = AscB(MidB(vIn,i+1,1)) 
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode)) 
i = i + 1 
End If 
Next 
bytes2BSTR = strReturn 
End Function 
set Http = CreateObject("Microsoft.XMLHTTP" 
Http.open "Get",URL,false   //URL是您必要获取的页面的网址 
Http.send "" 
document.write(bytes2BSTR(Http.responseBody)) 
</SCRIPT> 

注:上面的bytes2BSTR只能对responseBody操纵阿,responseText操纵就不能正常表现阿,由于responseText是体系按默认编码加工往后的东东了,是一堆乱码,没法处理赏罚。可是这样倒是能读简体中文的文件了,可是读utf-8又会堕落。
JS运行时汉字乱码相干题目的接头(编辑中呈现的题目请参考其他专题贴)

起首感激斑竹得指教,DHTML教程c心得技巧,这个页面不错,保藏了,详细内容研习中


有些我也传闻过,也做过测试,要害尚有三个疑团没有解开:

一、纵然是曾经正常表现的页面,假如用了退却可能读取了一个非utf-8页面往后也不能正常表现了;

二、纵然全部的防乱码(虽然从头编码的除外)法子都回收了,而且用统一措施打开铜一个页面,也不能担保每次出来的页面都能不变地表现为中文;

三、长途获取数据提交表单的题目,假如方针网站用了编码息争码,那么意味着假如表现的正常了,提交的内容就成了乱码,反之,亦然。于是不得不预先对全部获取的内容从头编码,这样就离不开编码措施,也就挣脱不了VBS得阴影=_='

适才测试中还发明个题目
先前发的VBS重编码函数,网页制作cDreamweaver教程,假如页面太大,IE会挂掉,SEO网站优化c网络编辑,详细多大预计缓和存及内存巨细有相关。总之,假如让我对中文支持的水平排序得话JS<VBS<ASP<HTML,HTML都静态了,虽然最不变,以是做动态页,假如不长短得客户端运行,凶猛提议用ASP天生代码。

斑竹给得页面页能打开了,我对Ajax和xml都还较量生疏,固然有传闻,但一向没有参与,能否简朴先容下,假如论坛上不利便说,可以加我QQ,资料中有,感谢了!

您也许感乐趣的文章:

(责任编辑:admin)

------分隔线----------------------------

  • 上一篇:js笔墨横向转动殊效
  • 下一篇:没有了

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    网友点评
    /