|
在百度、谷歌上一搜,大家都是說(shuō)通過(guò)Java后臺(tái)處理來(lái)解決編碼問(wèn)題,試問(wèn),這樣能解決JS文件本身的編碼問(wèn)題嗎?
之所以提出JS文件本身編碼問(wèn)題,是因?yàn)镴S文件的編碼不同,造成了中文顯示為亂碼。
通常,在Eclipse中建立一個(gè)JS文件(含有中文),在Eclipse的編輯器中看到的中文都很正常,但是顯示在網(wǎng)頁(yè)上就是亂碼,而我的頁(yè)面全部都是采用UTF-8編碼進(jìn)行編碼的,為此,我想到了,這可能是JS文件本身編碼問(wèn)題造成的。
在Eclipse中,JS文件中的中文顯示正常
在網(wǎng)頁(yè)中,中文卻顯示為亂碼
我想到了這可能是由于JS文件本身編碼問(wèn)題所導(dǎo)致的,其實(shí)這是正確的。這里要用到一個(gè)小工具,叫NotePad2,翻譯過(guò)來(lái)就是記事本第代,這個(gè)小工具很好用,綠色免安裝,完全可以取代windows系統(tǒng)自帶的記事本軟件。它的下載地址是:http://download.csdn.NET/source/1732849
用NotePad2打開(kāi)JS文件,查看JS文件的編碼,發(fā)現(xiàn)JS文件的編碼是ANSI,ANSI編碼采用0x80~0xFF范圍內(nèi)的2個(gè)字節(jié)來(lái)表示1個(gè)字符。例如,漢字“中”在中文操作系統(tǒng)中,使用[0xD6,0xD0]這兩個(gè)字節(jié)來(lái)存儲(chǔ)。但是,不同的國(guó)家和地區(qū)制定了不同的ANSI標(biāo)準(zhǔn),使得不同ANSI編碼之間互不兼容。大家都知道,在中國(guó),瀏覽器的編碼要么是GBK或GB2312編碼,要么是UTF8編碼,當(dāng)以ANSI編碼的中文發(fā)送到網(wǎng)頁(yè)上時(shí),自然就顯示為亂碼了,所以這是問(wèn)題的根本。
借助NotePad2軟件,將JS文件的編碼轉(zhuǎn)換成UTF-8編碼,因?yàn)閁TF-8編碼是計(jì)算機(jī)通用編碼,能支持幾乎所有國(guó)家或地區(qū)的語(yǔ)言文字,而且瀏覽器本身就支持UTF-8編碼。
OK,再來(lái)看看在瀏覽器上的效果。顯而易見(jiàn),中文顯示正常,亂碼問(wèn)題解決。并非像網(wǎng)上所說(shuō)的“使用JS中的encodeURIComponent或encodeURI方法”,既復(fù)雜又難懂,還要經(jīng)過(guò)復(fù)雜的編程,實(shí)在是不可取。
經(jīng)我的測(cè)試,無(wú)論是使用新建文本文檔然后將擴(kuò)展名改成.js,還是用其他軟件或工具創(chuàng)建的JS文件,用NotePad2軟件打開(kāi)查看編碼,發(fā)現(xiàn) JS文件的編碼都是ANSI,因此我猜測(cè),難道JS文件的默認(rèn)編碼是ANSI編碼?當(dāng)然這個(gè)我并沒(méi)有去考證,在網(wǎng)上也沒(méi)有相關(guān)的資料可以證明JS文件的默認(rèn)編碼是ANSI編碼,僅個(gè)人猜測(cè)而已。
但是,至少,如果JS文件中的中文在網(wǎng)頁(yè)上顯示為亂碼,不妨采用本文章中的方法來(lái)試一試,或許能解決使你很頭疼的問(wèn)題。
JavaScript技術(shù):JS 文件本身編碼轉(zhuǎn)換 圖文教程,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。