1. 程式人生 > >jsp裡include html檔案中文亂碼

jsp裡include html檔案中文亂碼

在jsp裡包含html檔案在網頁開發中是經常遇到的一件事,同樣用tomcate來裝載jsp更是每個初學者都會使用的方式,
但是結果並不總是美好的,亂碼,就這樣出現了。
在網上搜索了很多解決辦法,終於解決了亂碼的問題。

亂碼出現的原因不用說,肯定是編碼方式的問題,以utf-8編碼為例進行討論,根據實際使用的編碼方式,可以進行調整,下面的討論都基於windows作業系統。

出現亂碼,首先要注意的地方:

1、jsp檔案的編碼方式是否為utf-8

檢視編碼方式的方式有很多,可以自行百度。在eclipse裡右鍵點選檔案,在屬性對話方塊裡resource頁簽下,
通過Text file encoding就可以檢視當前編碼方式,也可以修改編碼方式。

2、jsp檔案的聲明裡編碼方式是否是utf-8

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

3、html檔案編碼方式是否是utf-8

檢視方式同1

4、如果html是個完整的html檔案,檢視是否進行了編碼方式說明,如果沒有head標籤,可以跳過此步。

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title
>
首頁</title> </head>

前面4個地方的編碼問題都解決了,可是問題還沒解決。

問題描述:

 在Eclipse裡直接啟動tomcate,然後瀏覽頁面,所有頁面上中文都可以正常顯示,
 但是用startup.bat啟動後,瀏覽的時候出現亂碼。

解決辦法 :

在tomcat安裝目錄的bin檔案下,找到catalina.bat檔案,在
rem   JAVA_OPTS       (Optional) Java runtime options used when any command
rem                   is executed.
rem
Include here and not in CATALINA_OPTS all options, that rem should be used by Tomcat and also by the stop process, rem the version command etc. rem Most options should go into CATALINA_OPTS.

下面新增如下程式碼:

set JAVA_OPTS=-server -Dfile.encoding=utf-8

啟動tomcat,中文可以正常顯示了。

新的問題又出現了…

用startup.bat啟動tomcat,中文總算不出現亂碼了,但是,把tomcate部署到windows系統服務後,亂碼又出現了。

解決辦法:

在windows系統變數裡新增一個新的變數,:
變數名:JAVA_TOOL_OPTIONS
值 :-Dfile.encoding=UTF-8

現在中文亂碼的問題已經解決了。

每個人遇到的情況可能都不盡相同,網上有人是用配置web.xml的方式解決亂碼,但是我試了卻無法解決問題,所以上面的辦法也不是萬能的。