freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

tomcat字符編碼常見問題-資料下載頁

2025-06-07 13:36本頁面
  

【正文】 cation/xformurlencoded的參數(shù)的value)的字節(jié), 將每1個“%HH”(占3個字節(jié))變成“0xHH”(占1個字節(jié)),且將加號+(占1個字節(jié))變成空格“ ”(占1個字節(jié))。下面的圖直觀的描述了這個UDecode過程:我們看到6個字節(jié)的“%D6%D0”變成了2個字節(jié)的“[0xD6][0xD0]”,我用中括號“[ ]”來表示其中的內(nèi)容合起來是一個字節(jié)。 到這里,我們至少知道了tomcat有個UDecode的過程,所以我們從中推理出這樣的一個現(xiàn)象:客戶端發(fā)送的keywords參數(shù)無論是啤酒的GBK字節(jié)碼“[0xC6][0xA1][0xBE][0xC6]”還是啤酒的GBKURLEncode字符“%C6%A1%BE%C6”,經(jīng)過tomcat的UDecode后,到變成前者,即“[0xC6][0xA1][0xBE][0xC6]”。說到這,我再次問上面一開始的那個問題:getParameter(keywords)的值為什么是亂碼?我給個提示:和UDecode有關!答案現(xiàn)在還不是很明顯,但我們腦??赡芨‖F(xiàn)了這幅圖:從UDecode的結(jié)果“[0xC6][0xA1][0xBE][0xC6]”到getParameter(keywords)的亂碼。你想到問號的部分是什么嗎?很抽象地為你解開答案:所以,getParameter(keywords)的值為什么是亂碼?因為上面的bytes是GBK的字節(jié)碼,而tomcat錯誤地將bytes作為ISO88591進行解碼了!難怪keywords會是亂碼!這...是tomcat的錯嗎?坦誠說不是,因為上面“String keywords = new String(bytes,ISO88591)?!敝械木幋aISO88591是可配置的,大家還記得 config/?就是這個URIEncode配置項,決定是上面的式子用什么編碼。到了這里,大家都清楚了,設置配置項URIEncode=“GBK”就可以用getParameter(keywords)得到正確的keywords:“啤酒”。另外配置項useBodyEncodingForURI使得+Tomcat%27s+URI+encoding現(xiàn)在,我問大家一個問題,當你知道,瀏覽器無論訪問“://localhost/?keywords=%C6%A1%BE%C6” 還是 “://localhost/?keywords=[0xC6][0xA1][0xBE][0xC6]”,tomcat都會將keywords變成“[0xC6][0xA1][0xBE][0xC6]”后,大家覺得要怎么去解碼還原keywords為“啤酒”呢?相信答案大家都很一致:byte[] bit = new byte[]{(byte)0xD6,(byte)0xD0}。 中的字節(jié)碼,是URLDecode之后的字節(jié)碼String w = new String(bit, GBK)。 用配置的URIEncoding將其解碼,變成字符中String ISOkeywords = (keywords)。String keywords = null。()。//keywords=%C6%A1%BE%C6if((ISOkeywords)){try {keywords = new String((ISO88591), GBK)。
點擊復制文檔內(nèi)容
教學教案相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1