<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    磨刀不誤砍柴工

    合抱之木,生于毫末;九層之臺(tái),起于累土;千里之行,始于足下。

       ::  ::  ::  :: 管理

    JAVA亂碼:

    測(cè)試代碼:

    								public
    								class SayHello {
    	publicstaticvoid main(String[] args){
    		//System.setProperty("file.encoding", "iso8859-1");
    		System.out.println("您好!");
    	}
    }
    

    采用JVM默認(rèn)file.encoding編碼編譯:(默認(rèn)為GBK)
    ?image

    指定file.encoding編譯:(指定為iso8859-1)

    image

    可以看出,若不指定初始參數(shù)file.encoding=iso8859-1(采用默認(rèn)的GBK),則打印出亂碼。同時(shí),若指定的值與編譯時(shí)不一致也會(huì)是亂碼。

    ?

    因此,解決亂碼的關(guān)鍵在于,寫(xiě)與讀時(shí),編碼方式要一致。

    ?

    --------------------------------------------------------------------------------------------------------------

    JSP亂碼:

    測(cè)試jsp頁(yè)面:

    用EditPlus書(shū)寫(xiě)jsp頁(yè)面encoding.jsp

    java" contentType="text/html; charset=GB2312"
    ??? pageEncoding="UTF-8"%>]]>




    測(cè)試頁(yè)面


    歡迎您!

    然后保存到tomcat的Root目錄下文件中,注意:選擇編碼方式為UTF-8

    image

    游覽此頁(yè)面,可以看到頁(yè)面正常無(wú)亂碼:

    image


    將:

    java" contentType="text/html; charset=GB2312" pageEncoding="UTF-8"%>]]>

    替換為:

    java" contentType="text/html; charset=GB2312" pageEncoding="GBK"%>]]>

    再次游覽此頁(yè)面,頁(yè)面出現(xiàn)亂碼:

    image

    ?

    原理:

    ]]>

    在這行的頁(yè)面指令中的"text/html; charset=UTF-8"將應(yīng)答消息中的"Content-type" 設(shè)置為"text/html; charset=UTF-8"。

    "pageEncoding"只是指明了 JSP 頁(yè)面本身的編碼格式,指明了 JSP 是以什么編碼方式保存。容器在讀取文件時(shí)將起轉(zhuǎn)化為內(nèi)部使用的 Unicode. 當(dāng)應(yīng)答發(fā)送回至瀏覽器時(shí),容器會(huì)將內(nèi)部使用的 Unicode 轉(zhuǎn)化為在 Content-type 中指定的字符集。

    如果沒(méi)有指定 PageEncoding,可以通過(guò)使用 Content-type 指定的字符集來(lái)解釋 JSP 頁(yè)面字節(jié)。

    ?

    jsp頁(yè)面在服務(wù)器端處理的過(guò)程是:

    jsp—>.java文件—> .class文件

    jsp—> .java文件是由服務(wù)器讀取jsp頁(yè)面文件,根據(jù)pageEncoding指明的編碼方式自動(dòng)轉(zhuǎn)換的。與前面java亂碼一節(jié)中指出的,這里也要保證寫(xiě)與讀時(shí)編碼一致才不會(huì)出現(xiàn)亂碼。從上面的例子也驗(yàn)證了這一點(diǎn)。

    .java文件 --> .calss文件過(guò)程,即為java編譯過(guò)程,由服務(wù)器邊jvm自動(dòng)進(jìn)行。

    ?

    至于,text/html; charset=GB2312,則可以設(shè)置成任何游覽器支持的并且支持中文的編碼方式,都能保證頁(yè)面不出現(xiàn)亂碼。(表單提交及URL請(qǐng)求不在此討論范圍內(nèi)),這是因?yàn)椋谏身憫?yīng)給游覽器前,虛擬機(jī)中以u(píng)nicode編碼的中文是正確的,服務(wù)器會(huì)更據(jù)指定的charset,將unicode轉(zhuǎn)換成正確的編碼。

    ?

    參考文章:

    Java 編程技術(shù)中漢字問(wèn)題的分析及解決

    JSP/Servlet 中的漢字編碼問(wèn)題

    編碼字符集與Java -Java World亂碼問(wèn)題根源之所在

    UTF-8 字符處理在 Web 開(kāi)發(fā)中的應(yīng)用

    ?

    Technorati 標(biāo)簽:
    posted on 2008-10-16 13:41 liwei5891 閱讀(594) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲精品国产suv一区88| 亚洲精品在线免费观看视频| 国产成人+综合亚洲+天堂| 好吊妞998视频免费观看在线| 亚洲精品亚洲人成在线播放| 最新免费jlzzjlzz在线播放| 国产99在线|亚洲| 日本特黄a级高清免费大片| 亚洲国产精品网站在线播放| 免费a级毛片18以上观看精品| 免费看黄福利app导航看一下黄色录像| 四虎精品亚洲一区二区三区| 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 中文字幕不卡免费视频| 日本亚洲视频在线 | 亚洲视频在线一区二区三区| 最近中文字幕完整免费视频ww| 亚洲日韩乱码中文无码蜜桃 | 亚洲视频免费在线观看| 91黑丝国产线观看免费| 亚洲人成色在线观看| 日本午夜免费福利视频| 一级做a爰片久久毛片免费陪 | 亚洲av无码无线在线观看| 亚洲视频在线一区二区| a级毛片100部免费观看| 亚洲妓女综合网99| 免费高清在线爱做视频| xxxx日本在线播放免费不卡| 亚洲av不卡一区二区三区 | 久久久久久国产a免费观看不卡| 国产V亚洲V天堂无码久久久| 久久午夜免费视频| 欧洲乱码伦视频免费国产| 亚洲av无码无在线观看红杏| 国产成人免费爽爽爽视频| eeuss影院www天堂免费| 91亚洲性爱在线视频| 亚洲黄片手机免费观看| 97视频免费观看2区| 激情婷婷成人亚洲综合|