WEB開發 de 點滴

          by sanwish

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            38 隨筆 :: 0 文章 :: 4 評論 :: 0 Trackbacks
          解決方法:
          1.
          問題描述:<%@ include file="*.html" %> 的中文亂碼問題
          
          要解決這個問題,當然最簡單的就是在每個被 include 的文件第一行,加上
          
          <%@ page contentType="text/html;charset=gb2312" %>
          這樣一定可以確保中文 jsp 檔不會出現亂碼,只不過,一旦程序修改成這樣的模式,這種程序就無法在舊的 
          jsp/servlet container 上執行了,因為舊的規格是不允被 include 檔案中再出現 <%@ page ... %> 這樣的定義的。
          
          況且,就算你愿意為了 Tomcat 5.0.x 特別維護一套不同版本的 Source Code,你會遇到重大的挫折,
          因為 Tomcat 5.0.x 版在 charset 的設定上,會特別檢查include 別人的程序與被人include 的程序,
          這二個程序中所定義的 charset 是不是一樣,如果不一樣,在編譯時就會產生錯誤。更恐怖的是,竟然還分大小寫,
          比如說:"gb2312" "GB2312" 這樣的定義,在 Tomcat 的認定上是不同的。 更好的解決方案 在 Tomcat 5.0.x 中,Tomcat 支持了 JSP 2.0 的規格,同時也支持了部分 J2EE 1.4 的規格,
          在 J2EE 1.4 的規格中,有關 JSP 的部份,有一個 <jsp-config> 的 XML Tag,
          這個 XML 區塊用來定義與 JSP 相關的特殊屬性,包含采用的 taglib 與 以下說明的 <jsp-property-group> ,
          而解決 include 檔中文問題的方法就定義在 <jsp-roperty-group> 中。 在當前應用系統的web.xml里加入jsp-config代碼: <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <jsp-config> <jsp-property-group> <description> Special property group for JSP Configuration JSP example. </description> <display-name>JSPConfiguration</display-name> <url-pattern>*.jsp</url-pattern> <el-ignored>true</el-ignored> <page-encoding>GB2312</page-encoding> <scripting-invalid>false</scripting-invalid> <include-prelude></include-prelude> <include-coda></include-coda> <description> Special property group for JSP Configuration JSP example. </description> <display-name>JSPConfiguration</display-name> <url-pattern>*.html</url-pattern> <el-ignored>true</el-ignored> <page-encoding>GB2312</page-encoding> <scripting-invalid>false</scripting-invalid> <include-prelude></include-prelude> <include-coda></include-coda> </jsp-property-group> </jsp-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> <welcome-file>index.html</welcome-file> </welcome-file-list> ... ... </webapp> 說明:<jsp-config>里的定義,就是通知當前應用服務器,當前應用系統下,所有的 .jsp, .html 文件,
          若是沒有定義contentType="text/html;charset=gb2312" 時,就會采用預設的 "GB2312" 字符集去處理,
          如此,就不須要在每個 include 的檔案第一行加上 contentType="text/html;charset=gb2312" 了。 注: <jsp-config>標簽使用詳解 <jsp-config> 包括<taglib> 和<jsp-property-group> 兩個子元素。 其中<taglib>元素在JSP 1.2時就已經存在;而<jsp-property-group>是JSP 2.0 新增的元素。 <jsp-property-group>元素主要有八個子元素,它們分別為: 1.<description>:設定的說明; 2.<display-name>:設定名稱; 3.<url-pattern>:設定值所影響的范圍,如:/CH2 或 /*.jsp; 4.<el-ignored>:若為true,表示不支持EL 語法; 5.<scripting-invalid>:若為true,表示不支持<% scripting %>語法; 6.<page-encoding>:設定JSP 網頁的編碼; 7.<include-prelude>:設置JSP 網頁的抬頭,擴展名為.jspf; 8.<include-coda>:設置JSP 網頁的結尾,擴展名為.jspf。 tomcat 5中include頁面亂碼問題 <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <jsp-config> <jsp-property-group> <description>Special property group for JSP Configuration JSP example.</description> <display-name>JSPConfiguration</display-name> <url-pattern>*.jsp</url-pattern> <el-ignored>true</el-ignored> <page-encoding>GBK</page-encoding> <scripting-invalid>false</scripting-invalid> <include-prelude></include-prelude> <include-coda></include-coda> <description>Special property group for JSP Configuration JSP example.</description> <display-name>JSPConfiguration</display-name> <url-pattern>*.html</url-pattern> <el-ignored>true</el-ignored> <page-encoding>GBK</page-encoding> <scripting-invalid>false</scripting-invalid> <include-prelude></include-prelude> <include-coda></include-coda> </jsp-property-group> </jsp-config> 2.關于中文出現亂碼的解決辦法 在一個編碼為utf-8的頁面中,使用<jsp:include>包含另一個.jsp/.html文件時,被包含的頁面單獨瀏覽正常,但被包含后就會遇到亂碼問題。
          解決的辦法是,在每個被包含的頁面開始加上下面一行<% page contentType="text/html;charset=utf-8" %>
          這個方法可以解決jsp include jsp的中文亂碼問題。也就是說,被包含的頁面必須改成.jsp,哪怕它的內容只有靜態html,
          否則的話還是會出現亂碼,如何解決include .html文件中文亂碼的問題,還在尋找中。
          posted on 2008-11-07 11:37 sanwish 閱讀(2014) 評論(0)  編輯  收藏 所屬分類: 編碼,文字化
          主站蜘蛛池模板: 甘谷县| 信丰县| 清徐县| 策勒县| 马鞍山市| 开远市| 河东区| 潞城市| 读书| 潼南县| 灌南县| 双辽市| 东乡| 霍山县| 晋州市| 保康县| 社会| 开平市| 东宁县| 田阳县| 霍州市| 县级市| 宜章县| 元谋县| 巨鹿县| 逊克县| 赤壁市| 大邑县| 肃南| 宜兰市| 垣曲县| 土默特右旗| 海林市| 南城县| 淮阳县| 河南省| 孙吴县| 丰原市| 九寨沟县| 登封市| 沙田区|