Encoding sitemesh和UTF-8编码
我有一个使用sitemesh的spring mvc应用程序。我的问题是,我的页面需要是UTF-8,但sitemesh支持ISO-8859-1字符集。是否可以将Sitemesh配置为使用UTF-8页面? 我使用了一个简单的例子,在这个例子中,我试图正确地显示页面,但却得到了无效字符,如%、等 我正在使用的文件是: sitemesh.xmlEncoding sitemesh和UTF-8编码,encoding,sitemesh,Encoding,Sitemesh,我有一个使用sitemesh的spring mvc应用程序。我的问题是,我的页面需要是UTF-8,但sitemesh支持ISO-8859-1字符集。是否可以将Sitemesh配置为使用UTF-8页面? 我使用了一个简单的例子,在这个例子中,我试图正确地显示页面,但却得到了无效字符,如%、等 我正在使用的文件是: sitemesh.xml <sitemesh> <property name="decorators-file" value="/WEB-INF/decorat
<sitemesh>
<property name="decorators-file" value="/WEB-INF/decorators.xml" />
<excludes file="${decorators-file}" />
<page-parsers>
<parser content-type="text/html"
class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
<parser content-type="text/html;charset=ISO-8859-1"
class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
</page-parsers>
<decorator-mappers>
<mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
<param name="config" value="${decorators-file}" />
</mapper>
</decorator-mappers>
</sitemesh>
web.xml
...
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
...
decorators.xml
<decorators defaultdir="/decorators">
<decorator name="main" page="main.jsp">
<pattern>/*</pattern>
</decorator>
</decorators>
main.jsp
<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %>
<html>
<body>
some stuff here
...
<div class="main"><decorator:body /></div>
</body>
</html>
我的示例页面:
<html>
...
<body>
mùpeeàçè
</body>
</html>
有人知道吗?
谢谢您是否尝试将CharacterEncodingFilter添加到web.xml中?请参阅:是否尝试将CharacterEncodingFilter添加到web.xml?请参阅:您可以在web.xml中尝试这一点。重要的是,它适合我
<filter>
<filter-name>SetCharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
您可以在web.xml中尝试这一点。重要的是,它适合我
<filter>
<filter-name>SetCharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
回复有点晚,但我希望其他人能从我浪费的时间中获益。斯普林的过滤器对我也不起作用。我编写了自己的,并手动设置servletResponse的contentType。我现在没有问题
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
throws ServletException, IOException {
resp.setContentType("text/html; charset=UTF-8");
chain.doFilter(req, resp);
}
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.muratdozen.mvc.filters.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/ui/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/WEB-INF/views/*</url-pattern>
<dispatcher>ERROR</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
回复有点晚,但我希望其他人能从我浪费的时间中获益。斯普林的过滤器对我也不起作用。我编写了自己的,并手动设置servletResponse的contentType。我现在没有问题
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
throws ServletException, IOException {
resp.setContentType("text/html; charset=UTF-8");
chain.doFilter(req, resp);
}
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.muratdozen.mvc.filters.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/ui/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/WEB-INF/views/*</url-pattern>
<dispatcher>ERROR</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>