我有一个页面编码为ISO-8859-1的JSP页面。这个JSP页面在一个问答博客中。我想在Q/A帖子中包含特殊字符。
问题是JSP不支持UTF-8编码,即使我把它从ISO-8859-1改成了UTF-8。这些字符(~、%、&、+)正在制造问题。当我张贴这些字符,无论是单独的或与任何字符的组合,它是存储在数据库中的null,当我删除这些字符,同时张贴应用程序,它是正常的。
有谁能提出一些解决方案吗?
发布于 2012-10-04 16:43:40
您应该在应用程序的all layers上使用相同的编码来避免此问题。添加filter来设置编码非常有用:
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain) throws ServletException {
request.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}要仅在JSP页面上设置编码,请将以下行添加到这些页面:
<%@ page contentType="text/html; charset=UTF-8" %>将您的数据库配置为使用相同的char编码。
如果需要转换字符串的编码,请参见:
我不建议在您的数据库中存储HTML编码的文本。例如,如果需要生成PDF (或HTML以外的任何内容),则需要首先转换HTML编码。
发布于 2012-10-04 20:01:42
完整的JSP标记应该是这样的,还要注意pageEncoding:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>一些老的浏览器也会把编码搞得一团糟。您可以使用HTML标记
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />此外,文件还应该以UTF-8格式记录,如果您使用的是Eclipse,那么左键单击文件->属性->签出->Text文件编码。
发布于 2015-02-04 13:52:29
我在显示像“ṀŮ”这样的字符时也遇到了问题,.I在我的web.xml中添加了以下内容。
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
</jsp-property-group>
</jsp-config>这解决了除页眉以外的页面中的问题。我试过很多方法来解决这个问题,但在我的情况下都不起作用。标头was标头jsp页的问题是从另一个jsp包含的。所以给出了导入的编码,这解决了我的问题。
<c:import url="/Header1.jsp" charEncoding="UTF-8"/>谢谢
https://stackoverflow.com/questions/12723339
复制相似问题