成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Tomcat 4.0和Tomcat 4.1下JSP頁(yè)面中文問(wèn)題解答

開(kāi)發(fā) 后端
本文介紹Tomcat 4.0和Tomcat 4.1下JSP頁(yè)面中文問(wèn)題解答,這些方法都已經(jīng)在 中文版 Windows 98 + JDK 1.3.1 和 中文版 Windows 2000 + JDK 1.3.1 下通過(guò)了測(cè)試。

目前, Tomcat 作為一種出色的開(kāi)放源代碼的 JSP 服務(wù)器,目前在 JSP 的開(kāi)發(fā)過(guò)程中獲得了廣泛的應(yīng)用. 但是作為一款英語(yǔ)國(guó)家公司開(kāi)發(fā)的軟件, 在中文環(huán)境下不可避免的會(huì)出現(xiàn)一些亂碼問(wèn)題. 這里就 Tomcat 4.0和Tomcat 4.1 下的常見(jiàn)中文問(wèn)題及其解決方法做一個(gè)總結(jié). 這些方法都已經(jīng)在 中文版 Windows 98 + JDK 1.3.1 和 中文版 Windows 2000 + JDK 1.3.1 下通過(guò)了測(cè)試. 另外在 IBM 的網(wǎng)站上有一個(gè)網(wǎng)頁(yè) http://www-900.ibm.com/developerWorks/cn/java/jsp_dbcsz/index.shtml 也討論了這個(gè)問(wèn)題.

首先為了便于討論, 這里首先列出了一些方便的工具方法, 便于我們的討論. 這些方法如下所示:

  1. public String toChi(String input) {  
  2. try {  
  3. byte[] bytes = input.getBytes("ISO8859-1");  
  4. return new String(bytes);  
  5. }catch(Exception ex) {  
  6. }  
  7. return null;  
  8. }  
  9. // 對(duì)給定字符進(jìn)行 URL 編碼  
  10. public String encode(String value) {  
  11. if(isEmpty(value)) return "";  
  12. return java.net.URLEncoder.encode(value);  
  13. }    
  14. // 對(duì)給定字符進(jìn)行 URL 解碼  
  15. public String decode(String value) {  
  16. if(isEmpty(value)) return "";  
  17. return java.net.URLDecoder.decode(value);  

問(wèn)題1. 瀏覽器中看到的 JSP頁(yè)面中的漢字怎么都成了
可能原因如下: 您的頁(yè)面中沒(méi)有指定頁(yè)面的字符集為中文. 解決方法(適用于Tomcat 4.0和Tomcat 4.1)是在頁(yè)面中添加如下代碼:

  1. <%@ page contentType="text/html;charset=gb2312" %> 
  2. <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 

問(wèn)題2. 通過(guò) POST 方法提交的表單的漢字都顯示為亂碼(在 Tomcat 4.0 下正常, Tomcat 4.1 下出現(xiàn)).
可能原因如下: POST 提交的字符串都是 ISO8859-1 編碼的, 只要把它的字符集轉(zhuǎn)換到中文就行了. 解決方法如下(適用于 Tomcat 4.1):

  1. // 單個(gè)的參數(shù)  
  2. String result = toChi(request.getParameter("parameterName"));  
  3. // 多個(gè)參數(shù)  
  4. String values[] = request.getParameterValues(name);  
  5. if(values != null) {  
  6. for(int i = 0; i < values.length; i++) {  
  7. values[i] = toChi(values[i]);  
  8. }  

問(wèn)題3. 通過(guò) GET 方法提交的表單的漢字都顯示為亂碼(在 Tomcat 4.0和Tomcat 4.1 下都出現(xiàn)).可能原因如下: GET 提交的字符串都是 ISO8859-1 編碼的, 只要把它的字符集轉(zhuǎn)換到中文就行了. 解決方法如下(適用于 Tomcat 4.1, Tomcat 4.0 下不能用于 page.jsp?username=中文):

  1. // 單個(gè)的參數(shù)  
  2. String result = toChi(request.getParameter("parameterName"));  
  3. // 多個(gè)參數(shù)  
  4. String values[] = request.getParameterValues(name);  
  5. if(values != null) {  
  6. for(int i = 0; i < values.length; i++) {  
  7. values[i] = toChi(values[i]);  
  8. }  

問(wèn)題4. Cookie 中不能寫(xiě)入漢字或者漢字無(wú)法正確顯示.可能原因如下: Tomcat 4.0 下自動(dòng)把 Cookie 做了編碼為 ISO8859-1 的存儲(chǔ), 而 Tomcat 4.1 下的 JSP 引擎不支持包含含有漢字的 Cookie.

Tomcat 4.0 下的解決方法:

  1. // 根據(jù) Cookie 名稱得到請(qǐng)求中的 Cookie 值, 如果 Cookie 值是 null, 則返回 ""  
  2. public String getCookieValue(HttpServletRequest request, String name) {  
  3. Cookie[] cookies = request.getCookies();  
  4. if(cookies == null) return "";  
  5. for(int i = 0; i < cookies.length; i++) {  
  6. Cookie cookie = cookies[i];  
  7. if(cookie.getName().equals(name)) {  
  8. // 需要對(duì) Cookie 中的漢字進(jìn)行 URL 反編碼, 適用版本: Tomcat 4.0  
  9. return decode(cookie.getValue());  
  10. }  
  11. }  
  12. // A cookie might not return a null value, may return a ""  
  13. return "";  

Tomcat 4.1 下的解決方法:

  1. // 寫(xiě)入包含漢字 Cookie 的方法  
  2. response.addCookie(new Cookie("cookieName", encode("漢字")));  
  3. // 得到 Cookie 值的方法(同 Tomcat 4.0 的解決方法)  
  4. public String getCookieValue(HttpServletRequest request, String name) {  
  5. Cookie[] cookies = request.getCookies();  
  6. if(cookies == null) return "";  
  7. for(int i = 0; i < cookies.length; i++) {  
  8. Cookie cookie = cookies[i];  
  9. if(cookie.getName().equals(name)) {  
  10. // 需要對(duì) Cookie 中的漢字進(jìn)行 URL 反編碼, 適用版本: Tomcat 4.0  
  11. return decode(cookie.getValue());  
  12. }  
  13. }  
  14. // A cookie might not return a null value, may return a ""  
  15. return "";  

問(wèn)題5. 在 Tomcat 4.0 下 GET 請(qǐng)求(如: page.jsp?username=中文) 無(wú)法返回原來(lái)的值.原因: 與 Tomcat 引擎有關(guān), 不論是否轉(zhuǎn)換內(nèi)碼, 均無(wú)法返回原來(lái)的值, 但是有一個(gè)替代方法, 如下:
將URL地址改變?yōu)?"page.jsp?username=" + encode("中文")然后使用下列代碼取回參數(shù):

  1. // 單個(gè)的參數(shù)  
  2. String result = toChi(request.getParameter("parameterName")); 

【編輯推薦】

  1. 簡(jiǎn)單介紹JSP數(shù)據(jù)庫(kù)高級(jí)操作
  2. 實(shí)現(xiàn)JSP數(shù)據(jù)和JavaScript數(shù)據(jù)交互使用
  3. JSP和Servlet中的幾個(gè)編碼的作用及原理
  4. 如何解決JSP頁(yè)面顯示亂碼問(wèn)題
  5. 在JSP中用JDBC連接各種數(shù)據(jù)庫(kù)
責(zé)任編輯:佚名 來(lái)源: builder
相關(guān)推薦

2010-05-14 10:46:14

2011-05-10 14:14:10

OSPF路由

2011-05-10 14:32:19

OSPF路由

2011-03-30 14:44:28

MRTG

2010-10-09 17:19:50

mysql存儲(chǔ)過(guò)程

2009-10-27 11:10:56

linux問(wèn)題解答

2009-12-25 10:59:08

WPF Timer

2009-10-13 14:56:00

CCNA培訓(xùn)

2010-07-26 13:05:44

Perl子程序參數(shù)

2011-07-13 17:57:15

SQLite

2011-08-09 15:10:00

SQLite

2010-09-13 14:43:47

無(wú)線技術(shù)常見(jiàn)問(wèn)題

2023-10-10 08:01:13

2011-10-20 09:57:58

AS400 FTPFTP

2009-07-31 12:16:58

linux無(wú)盤(pán)系統(tǒng)

2011-08-03 13:25:19

布線系統(tǒng)規(guī)劃

2011-04-14 10:46:23

2010-12-27 14:50:16

Windows 部署服

2010-05-12 17:04:20

BlackBerry開(kāi)

2009-07-01 14:09:24

Servlet和BeaJSP
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 最新av片 | 欧美日韩专区 | 男女羞羞视频网站 | 欧美一区2区三区3区公司 | 日本又色又爽又黄又高潮 | 精品日韩一区二区三区av动图 | 久草热播 | 日韩中文字幕 | 免费看a | 欧美一区二区三区精品 | 亚洲欧美日韩精品久久亚洲区 | 综合久久一区 | 日韩成年人视频在线 | 久久久女| 99国产精品99久久久久久 | 四虎在线播放 | 成人亚洲精品久久久久软件 | 伊人成人免费视频 | 日韩高清一区二区 | 四虎影视1304t| 国产成人午夜高潮毛片 | 成人高清视频在线观看 | 五月天激情电影 | 日日噜| 亚洲视频在线看 | 黑人一级黄色大片 | 日韩中文字幕 | 一区二区三区在线免费观看视频 | 免费午夜剧场 | 亚洲免费视频在线观看 | 黄色一级毛片 | 日韩在线精品 | 欧美1—12sexvideos| 欧美另类视频在线 | 99综合| 黄色一级毛片 | 夜夜久久 | 久久久久久久91 | 欧美日韩国产一区二区三区 | 欧美阿v | 久久视频免费观看 |