有jsp頁(yè)面a.jsp,其中用到了b.js。b.js中是個(gè)包含有漢字的腳本文件。每次訪問(wèn)a.jsp,都提示腳本有錯(cuò)誤字符。將漢字全部去掉問(wèn)題就解決了。
問(wèn)題解決后,有經(jīng)過(guò)多次實(shí)驗(yàn),發(fā)現(xiàn)jsp的頁(yè)面編碼和腳本的文件的編碼格式一直就沒(méi)有問(wèn)題。如jsp中編碼格式為UTF-8,那么用eclipse將腳本文件轉(zhuǎn)換成UTF-8格式,就可以了。其它編碼同理。
后來(lái)將文件都上傳是公網(wǎng)服務(wù)器上,發(fā)現(xiàn)jsp的編碼格式只能使用GBK才能顯示正常。經(jīng)對(duì)情況進(jìn)行分析,猜測(cè)可能是eclipse轉(zhuǎn)換的文件編碼只對(duì)eclipse起作用。可以使用其它工具將文件的編碼格式真正轉(zhuǎn)換。例如,notepad。
分析結(jié)果是:當(dāng)打開a.jsp時(shí),瀏覽器知道了當(dāng)前頁(yè)面的編碼格式。瀏覽器再次從服務(wù)器上獲取js腳本后,用頁(yè)面的編碼格式將腳本的數(shù)據(jù)流加載。由于頁(yè)面的編碼格式和js腳本的實(shí)際編碼格式不一致,造成了腳本中有非法字符。
文章來(lái)源:http://sayyy.bokee.com/6051488.html