現象:`.shtml` 用 `<!--#include virtual="xxx.jsp"-->` 包含 JSP,JSP 輸出中文顯示亂碼。根因:SSI Servlet 預設編碼非 GBK/UTF-8,導致 JSP 輸出被錯誤解碼後再輸出。
<servlet>
<servlet-name>ssi</servlet-name>
<servlet-class>org.apache.catalina.ssi.SSIServlet</servlet-class>
...
<init-param>
<param-name>inputEncoding</param-name>
<param-value>GBK</param-value> <!-- 或 UTF-8,與 JSP pageEncoding 一致 -->
</init-param>
<init-param>
<param-name>outputEncoding</param-name>
<param-value>GBK</param-value> <!-- 輸出編碼同步 -->
</init-param>
<load-on-startup>4</load-on-startup>
</servlet>
inputEncoding 解碼為字串;輸出瀏覽器時,依 outputEncoding 編碼為位元組。inputEncoding/outputEncoding。