解決方法: 1. 問(wèn)題描述:<%@ include file="*.html" %> 的中文亂碼問(wèn)題 要解決這個(gè)問(wèn)題,當(dāng)然最簡(jiǎn)單的就是在每個(gè)被 include 的文件第一行,加上 <%@ page contentType="text/html;charset=gb2312" %> 這樣一定可以確保中文 jsp 檔不會(huì)出現(xiàn)亂碼,只不過(guò),一旦程序修改成這樣的模式,這種程序就無(wú)法在舊的 jsp/servlet container 上執(zhí)行了,因?yàn)榕f的規(guī)格是不允被 include 檔案中再出現(xiàn) <%@ page ... %> 這樣的定義的。 況且,就算你愿意為了 Tomcat 5.0.x 特別維護(hù)一套不同版本的 Source Code,你會(huì)遇到重大的挫折,
因?yàn)?Tomcat 5.0.x 版在 charset 的設(shè)定上,會(huì)特別檢查include 別人的程序與被人include 的程序,
這二個(gè)程序中所定義的 charset 是不是一樣,如果不一樣,在編譯時(shí)就會(huì)產(chǎn)生錯(cuò)誤。更恐怖的是,竟然還分大小寫(xiě),
比如說(shuō):"gb2312" "GB2312" 這樣的定義,在 Tomcat 的認(rèn)定上是不同的。 更好的解決方案 在 Tomcat 5.0.x 中,Tomcat 支持了 JSP 2.0 的規(guī)格,同時(shí)也支持了部分 J2EE 1.4 的規(guī)格,
在 J2EE 1.4 的規(guī)格中,有關(guān) JSP 的部份,有一個(gè) <jsp-config> 的 XML Tag,
這個(gè) XML 區(qū)塊用來(lái)定義與 JSP 相關(guān)的特殊屬性,包含采用的 taglib 與 以下說(shuō)明的 <jsp-property-group> ,
而解決 include 檔中文問(wèn)題的方法就定義在 <jsp-roperty-group> 中。 在當(dāng)前應(yīng)用系統(tǒng)的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> 說(shuō)明:<jsp-config>里的定義,就是通知當(dāng)前應(yīng)用服務(wù)器,當(dāng)前應(yīng)用系統(tǒng)下,所有的 .jsp, .html 文件,
若是沒(méi)有定義contentType="text/html;charset=gb2312" 時(shí),就會(huì)采用預(yù)設(shè)的 "GB2312" 字符集去處理,
如此,就不須要在每個(gè) include 的檔案第一行加上 contentType="text/html;charset=gb2312" 了。 注: <jsp-config>標(biāo)簽使用詳解 <jsp-config> 包括<taglib> 和<jsp-property-group> 兩個(gè)子元素。 其中<taglib>元素在JSP 1.2時(shí)就已經(jīng)存在;而<jsp-property-group>是JSP 2.0 新增的元素。 <jsp-property-group>元素主要有八個(gè)子元素,它們分別為: 1.<description>:設(shè)定的說(shuō)明; 2.<display-name>:設(shè)定名稱; 3.<url-pattern>:設(shè)定值所影響的范圍,如:/CH2 或 /*.jsp; 4.<el-ignored>:若為true,表示不支持EL 語(yǔ)法; 5.<scripting-invalid>:若為true,表示不支持<% scripting %>語(yǔ)法; 6.<page-encoding>:設(shè)定JSP 網(wǎng)頁(yè)的編碼; 7.<include-prelude>:設(shè)置JSP 網(wǎng)頁(yè)的抬頭,擴(kuò)展名為.jspf; 8.<include-coda>:設(shè)置JSP 網(wǎng)頁(yè)的結(jié)尾,擴(kuò)展名為.jspf。 tomcat 5中include頁(yè)面亂碼問(wèn)題 <?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.關(guān)于中文出現(xiàn)亂碼的解決辦法 在一個(gè)編碼為utf-8的頁(yè)面中,使用<jsp:include>包含另一個(gè).jsp/.html文件時(shí),被包含的頁(yè)面單獨(dú)瀏覽正常,但被包含后就會(huì)遇到亂碼問(wèn)題。
解決的辦法是,在每個(gè)被包含的頁(yè)面開(kāi)始加上下面一行<% page contentType="text/html;charset=utf-8" %>
這個(gè)方法可以解決jsp include jsp的中文亂碼問(wèn)題。也就是說(shuō),被包含的頁(yè)面必須改成.jsp,哪怕它的內(nèi)容只有靜態(tài)html,
否則的話還是會(huì)出現(xiàn)亂碼,如何解決include .html文件中文亂碼的問(wèn)題,還在尋找中。
只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。 | ||
![]() |
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問(wèn)
管理
|
||
相關(guān)文章:
|
||