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

正文內(nèi)容

tomcat字符編碼常見(jiàn)問(wèn)題-閱讀頁(yè)

2025-06-22 13:36本頁(yè)面
  

【正文】 fo中,對(duì)于pathInfo的參數(shù)解析,我們也可以模仿UDecoder機(jī)制。百度的做法是不規(guī)范的,但或許使用UDecoder機(jī)制去處理pathInfo,就可以避免這種情況??梢栽敿?xì)見(jiàn)這里 比如我們的url是:獲取的方式有兩種:(1) 直接使用getParameter(keywords)得到keywords參數(shù)(2) 先使用getQueryString(),再手動(dòng)解析出keywords參數(shù)我們看看這兩種方式。 當(dāng)訪問(wèn)://localhost/?keywords=%C6%A1%BE%C6后,我們?cè)噲D打印出getParameter(keywords)的值,你猜看到什么?亂碼!我們?cè)噲D質(zhì)問(wèn)tomcat:“為什么是亂碼?!如果我輸入的keywords是“啤酒”這樣的字符,得到亂碼我可以接受,但是我輸入的可是“%C6%A1%BE%C6”這樣一串ISO88591編碼的字符??!有人猜測(cè),那是瀏覽器在搞鬼,瀏覽器發(fā)送的不是“%C6%A1%BE%C6”這樣的可見(jiàn)字符的,而是發(fā)送“啤酒”這個(gè)非ascii字符(當(dāng)然,我們應(yīng)該理解本質(zhì)上傳送的“啤酒”肯定是“啤酒”的某某編碼格式的字節(jié)碼,這個(gè)編碼可以是常見(jiàn)的GBK或UTF8)??吹剑敵觥発eywords=%C6%A1%BE%C6”。什么是UDecode類的處理過(guò)程,詳細(xì)你可以看tomcat源碼的UDecode類,這里用簡(jiǎn)單的一句話概括UDecode類做的事情:修改request中的parameter(包括get方式的url參數(shù)的value和post方式的application/xformurlencoded的參數(shù)的value)的字節(jié), 將每1個(gè)“%HH”(占3個(gè)字節(jié))變成“0xHH”(占1個(gè)字節(jié)),且將加號(hào)+(占1個(gè)字節(jié))變成空格“ ”(占1個(gè)字節(jié))。說(shuō)到這,我再次問(wèn)上面一開(kāi)始的那個(gè)問(wèn)題:getParameter(keywords)的值為什么是亂碼?我給個(gè)提示:和UDecode有關(guān)!答案現(xiàn)在還不是很明顯,但我們腦??赡芨‖F(xiàn)了這幅圖:從UDecode的結(jié)果“[0xC6][0xA1][0xBE][0xC6]”到getParameter(keywords)的亂碼?!敝械木幋aISO88591是可配置的,大家還記得 config/?就是這個(gè)URIEncode配置項(xiàng),決定是上面的式子用什么編碼。另外配置項(xiàng)useBodyEncodingForURI使得+Tomcat%27s+URI+encoding現(xiàn)在,我問(wèn)大家一個(gè)問(wèn)題,當(dāng)你知道,瀏覽器無(wú)論訪問(wèn)“://localhost/?keywords=%C6%A1%BE%C6” 還是 “://localhost/?keywords=[0xC6][0xA1][0xBE][0xC6]”,tomcat都會(huì)將keywords變成“[0xC6][0xA1][0xBE][0xC6]”后,大家覺(jué)得要怎么去解碼還原keywords為“啤酒”呢?相信答案大家都很一致:byte[] bit = new byte[]{(byte)0xD6,(byte)0xD0}。String keywords = null。//keywords=%C6%A1%BE%C6if((ISOkeywords)){try {keywords = new String((ISO88591), GBK
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1