欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

完美解決JS中漢字顯示亂碼問題(已解決)

 更新時間:2006年12月27日 00:00:00   作者:  
如題,剛才看了幾篇大家的討論,忽然也想起要將自己最近研究的問題貼出來,凡是和JS中亂碼相關(guān)的問題都發(fā)到這里把,大家一起研究。:)
場景一:write寫出來的內(nèi)容是utf-8格式的,如果保存的write數(shù)據(jù)中有不是utf-8編碼的中文,對write嵌套倆次以上就會有亂碼。由于手頭沒有現(xiàn)成的文件,剛才臨時制作了一個,這是1.htm頁面的代碼: 
復(fù)制代碼 代碼如下:
<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
復(fù)制代碼 代碼如下:
//這是JS遞歸自寫過程中漢字亂碼的演示程序 
//不光是中文內(nèi)容不行,就連注釋如果是中文有時候也不行 
//感覺JS一碰上中文就變得很不穩(wěn)定=_=' 
//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='這是演示程序,已經(jīng)運行了"+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代碼如下:(注釋是發(fā)貼子時候加的,如果怕干擾可以去掉)
復(fù)制代碼 代碼如下:
<SCRIPT language="JavaScript" type="text/JavaScript"> 
self.onerror=null; 
var Http = new ActiveXObject("Microsoft.XMLHTTP"; 
Http.open("GET",URL,false);      //URL是您需要獲取的頁面的網(wǎng)址 
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是您需要獲取的頁面的網(wǎng)址 
Http.send "" 
document.write(bytes2BSTR(Http.responseBody)) 
</SCRIPT> 
注:上面的bytes2BSTR只能對responseBody操作阿,responseText操作就不能正常顯示阿,因為responseText是系統(tǒng)按默認(rèn)編碼加工以后的東東了,是一堆亂碼,沒法處理。但是這樣倒是能讀簡體中文的文件了,但是讀utf-8又會出錯。
JS運行時漢字亂碼相關(guān)問題的討論(編輯中出現(xiàn)的問題請參考其他專題貼)

首先感謝斑竹得指教,這個頁面不錯,收藏了,具體內(nèi)容研習(xí)中
http://sheneyan.com/test/testAjaxPost.htm

有些我也聽說過,也做過測試,關(guān)鍵還有三個疑團沒有解開:

一、即使是曾經(jīng)正常顯示的頁面,如果用了后退或者讀取了一個非utf-8頁面以后也不能正常顯示了;

二、即使所有的防亂碼(當(dāng)然重新編碼的除外)措施都采用了,并且用同一程序打開銅一個頁面,也不能保證每次出來的頁面都能穩(wěn)定地顯示為中文;

三、遠程獲取數(shù)據(jù)提交表單的問題,如果目標(biāo)網(wǎng)站用了編碼和解碼,那么意味著如果顯示的正常了,提交的內(nèi)容就成了亂碼,反之,亦然。于是不得不預(yù)先對所有獲取的內(nèi)容重新編碼,這樣就離不開編碼程序,也就擺脫不了VBS得陰影=_='

剛才測試中還發(fā)現(xiàn)個問題
先前發(fā)的VBS重編碼函數(shù),如果頁面太大,IE會掛掉,具體多大估計和緩存及內(nèi)存大小有關(guān)系??傊?,如果讓我對中文支持的程度排序得話JS<VBS<ASP<HTML,HTML都靜態(tài)了,當(dāng)然最穩(wěn)定,所以做動態(tài)頁,如果不是非得客戶端運行,強烈建議用ASP生成代碼。

斑竹給得頁面頁能打開了,我對Ajax和xml都還比較陌生,雖然有聽說,但一直沒有介入,可否簡單介紹下,如果論壇上不方便說,可以加我QQ,資料中有,謝謝了!

相關(guān)文章

  • JavaScript匿名函數(shù)與委托使用示例

    JavaScript匿名函數(shù)與委托使用示例

    本例主要介紹了JavaScript匿名函數(shù)與委托的使用,需要的朋友可以參考下
    2014-07-07
  • js中的鼠標(biāo)事件有哪些(用法示例學(xué)習(xí)進階)

    js中的鼠標(biāo)事件有哪些(用法示例學(xué)習(xí)進階)

    在JavaScript中,鼠標(biāo)事件是 Web 開發(fā)中最常用的事件類型。鼠標(biāo)點擊事件包括 4 個:click(單擊)、dblclick(雙擊)、mousedown(按下)和 mouseup(松開)。其中 click 事件類型比較常用,而 mousedown和mouseup事件類型多用在鼠標(biāo)拖放、拉伸操作中。
    2023-02-02
  • Javascript WebSocket使用實例介紹(簡明入門教程)

    Javascript WebSocket使用實例介紹(簡明入門教程)

    網(wǎng)絡(luò)套接字是下一代WEB應(yīng)用程序雙向通信技術(shù),它是基于一個獨立的socket并且需要客戶端瀏覽器支持HTML5
    2014-04-04
  • html超鏈接打開窗口大小的方法

    html超鏈接打開窗口大小的方法

    html超鏈接打開窗口大小的方法,需要的朋友可以參考一下
    2013-03-03
  • 在JavaScript應(yīng)用中實現(xiàn)延遲加載的方法

    在JavaScript應(yīng)用中實現(xiàn)延遲加載的方法

    這篇文章主要介紹了在JavaScript應(yīng)用中實現(xiàn)延遲加載的方法,利用RequireJS框架,需要的朋友可以參考下
    2015-06-06
  • 深入理解JavaScript 箭頭函數(shù)

    深入理解JavaScript 箭頭函數(shù)

    ES6標(biāo)準(zhǔn)新增了一種新的函數(shù):Arrow Function(箭頭函數(shù))。為什么叫Arrow Function?因為它的定義用的就是一個箭頭。下面我們來一起學(xué)習(xí)一下吧
    2019-05-05
  • JavaScript的字符串方法匯總

    JavaScript的字符串方法匯總

    字符串的操作在js中非常頻繁,也非常重要。以往看完書之后都能記得非常清楚,但稍微隔一段時間不用,便會忘得差不多,記性不好是硬傷啊。。。今天就對字符串的一些常用操作做個整理,一者加深印象,二者方便今后溫習(xí)查閱。
    2016-07-07
  • 微信小程序訪問node.js接口服務(wù)器搭建教程

    微信小程序訪問node.js接口服務(wù)器搭建教程

    這篇文章主要給大家分享了微信小程序訪問node.js接口服務(wù)器的搭建教程,文中介紹的非常詳細,對大家具有一定的參考價值,需要的朋友們下面來跟著小編一起看看吧。
    2017-04-04
  • ajax上傳時參數(shù)提交不更新等相關(guān)問題

    ajax上傳時參數(shù)提交不更新等相關(guān)問題

    我感覺好像這個上傳插件只在第一次點擊的時候?qū)嵗?shù)傳給后臺,所以以后值都是不變的,應(yīng)該怎么解決這個問題呢
    2012-12-12
  • javascript的幾種寫法總結(jié)

    javascript的幾種寫法總結(jié)

    下面小編就為大家?guī)硪黄猨avascript的幾種寫法總結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09

最新評論