日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

JSP和Servlet對中文的處理過程(2)_JSP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:困擾JSP的一些問題與解決方法
如今每一個使用servlets的開發(fā)者都知道JSP,一種由Sun公司發(fā)明并花費大量精力加以推行并建構在servlet技術之上的web技術。JSP將servlet中的html代碼脫離了出來,從而可以加速web應用開發(fā)

再如,把字符串String="\u00d6\u00ec\u00e9\u0046\u00bb\u00f9"進行new String (buf.getBytes("GBK"))操作,得到的結果是“3fa8aca8a6463fa8b4”,其中,“\u00d6”在“GBK”中沒有對應的字符,得到“3f”,“\u00ec”對應著“a8ac”,“\u00e9”對應著“a8a6”,“0046”對應著“46”(因為這是ASCII字符),“\u00bb”沒找到,得到“3f”,最后,“\u00f9”對應著“a8b4”。把這個字符串println一下,得到的結果是“?ìéF?ù”。看到?jīng)]?這里并不全是問號,因為GBK與Unicode映射的內容中除了漢字外還有字符,本例就是最好的明證。

所以,在漢字轉碼時,如果發(fā)生錯亂,得到的不一定都是問號噢!不過,錯了終究是錯了,50步和100步并沒有質的差別。

或者會問:如果源字符集中有,而Unicode中沒有,結果會如何?回答是不知道。因為我手頭沒有能做這個測試的源字符集。但有一點是肯定的,那就是源字符集不夠規(guī)范。在Java中,如果發(fā)生這種情況,是會拋出異常的。

什么是UTF

UTF,是Unicode Text Format的縮寫,意為Unicode文本格式。對于UTF,是這樣定義的:

(1)如果Unicode的16位字符的頭9位是0,則用一個字節(jié)表示,這個字節(jié)的首位是“0”,剩下的7位與原字符中的后7位相同,如“\u0034”(0000 0000 0011 0100),用“34” (0011 0100)表示;(與源Unicode字符是相同的);

(2)如果Unicode的16位字符的頭5位是0,則用2個字節(jié)表示,首字節(jié)是“110”開頭,后面的5位與源字符中除去頭5個零后的最高5位相同;第二個字節(jié)以“10”開頭,后面的6位與源字符中的低6位相同。如“\u025d”(0000 0010 0101 1101),轉化后為“c99d”(1100 1001 1001 1101);

(3)如果不符合上述兩個規(guī)則,則用三個字節(jié)表示。第一個字節(jié)以“1110”開頭,后四位為源字符的高四位;第二個字節(jié)以“10”開頭,后六位為源字符中間的六位;第三個字節(jié)以“10”開頭,后六位為源字符的低六位;如“\u9da7”(1001 1101 1010 0111),轉化為“e9b6a7”(1110 1001 1011 0110 1010 0111);

可以這么描述JAVA程序中Unicode與UTF的關系,雖然不絕對:字符串在內存中運行時,表現(xiàn)為Unicode代碼,而當要保存到文件或其它介質中去時,用的是UTF。這個轉化過程是由writeUTF和readUTF來完成的。

好了,基礎性的論述差不多了,下面進入正題。

先把這個問題想成是一個黑匣子。先看黑匣子的一級表示:

input(charsetA)->process(Unicode)->output(charsetB)

簡單,這就是一個IPO模型,即輸入、處理和輸出。同樣的內容要經(jīng)過“從charsetA到unicode再到charsetB”的轉化。

再看二級表示:

SourceFile(jsp,java)->class->output


在這個圖中,可以看出,輸入的是jsp和java源文件,在處理過程中,以Class文件為載體,然后輸出。再細化到三級表示:

jsp->temp file->class->browser,os console,db

app,servlet->class->browser,os console,db

這個圖就更明白了。Jsp文件先生成中間的Java文件,再生成Class。而Servlet和普通App則直接編譯生成Class。然后,從Class再輸出到瀏覽器、控制臺或數(shù)據(jù)庫等。

分享:JavaBean 在jsp和serlvle中傳遞技術要點
javaBean 在jsp和serlvle中的傳遞技術要點 一、 初始化javaBean 1、 在jsp中 在上一段的代碼中執(zhí)行過程如下: ? 按照scope的參數(shù)尋找相同id的javabean,如果找到了就跳出該; ?

來源:模板無憂//所屬分類:JSP教程/更新時間:2008-08-22
相關JSP教程