JSP嵌套html亂碼問題

問題:

JSP頁面中聲明瞭contentType="text/html; charset=UTF-8"

被include的靜態html中也包含了<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

但顯示時JSP部分的能正常顯示,被包含的部分卻是亂碼,而單獨去瀏覽html頁面部分卻又是正常的,瀏覽器會自動選擇utf-8編碼,唯獨兩個混合在一起時不能全部正常,明明兩個都設置爲UTF-8了。



解決方法:
在項目的web.xml中加入下面語句:
<jsp-config>   
  <jsp-property-group>   
  <description>   
  Special property group for JSP Configuration HTML   
  example.   
  </description>   
  <display-name>JSPConfiguration</display-name>   
  <url-pattern>*.html</url-pattern>   
  <el-ignored>true</el-ignored>   
  <page-encoding>UTF-8</page-encoding>   
  <scripting-invalid>false</scripting-invalid>   
  <include-prelude></include-prelude>   
  <include-coda></include-coda>   
  </jsp-property-group>   

</jsp-config>


續:

用了上面的解決辦法之後,發現JSP include的HTML頁面刷新後無法實時獲取到更新內容了,即使HTML頁面發生了改變也看不到更新內容,甚至直接訪問該HTML頁面也無法更新!本來以爲是緩存問題,於是加上了很多禁止緩存的語句,但是均不起作用。

唯獨去掉上面加入web.xml的內容雖然又回到亂碼狀態,但卻可以刷新出最新內容。

我在所有JSP頁面,HTML頁面,代碼文件均使用了UTF-8編碼,按理來說不該出現亂碼的,最後注意到Eclipse中編碼頁面有個選項是inherit from container(GBK),可見容器的編碼並不是UTF-8,於是修改了Eclipse中設置:

改變整個工作空間的編碼格式,這樣以後新建的文件也是新設置的編碼格式。 
eclipse->window->preferences->General->workspaceTypes->Other->UTF-8->OK

終於恢復正常,不亂碼了,也可以更新頁面內容了!

附Eclipse編碼設置:http://kodak-zhou.iteye.com/blog/1004722

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章