JSP 页面中的 UTF-8 编码
我有一个页面,其页面编码为 。这个JSP页面有一个问答博客。我想在问答发布期间包含特殊字符。JSP
ISO-8859-1
问题是JSP不支持编码,即使我已经将其从更改为。这些角色(,,,)正在制造问题。当我单独或与任何字符的组合一起发布这些字符时,它在数据库中是storinh,当我在发布应用程序时删除这些字符时,它工作正常。UTF-8
ISO-8859-1
UTF-8
~
%
&
+
null
任何人都可以提出一些解决方案吗?
我有一个页面,其页面编码为 。这个JSP页面有一个问答博客。我想在问答发布期间包含特殊字符。JSP
ISO-8859-1
问题是JSP不支持编码,即使我已经将其从更改为。这些角色(,,,)正在制造问题。当我单独或与任何字符的组合一起发布这些字符时,它在数据库中是storinh,当我在发布应用程序时删除这些字符时,它工作正常。UTF-8
ISO-8859-1
UTF-8
~
%
&
+
null
任何人都可以提出一些解决方案吗?
应在应用程序的所有层上使用相同的编码,以避免此问题。添加过滤器来设置编码非常有用:
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" %>
将数据库配置为也使用相同的字符编码。
如果需要转换字符串的编码,请参阅:
我不建议将HTML编码的文本存储在数据库中。例如,如果您需要生成PDF(或HTML以外的任何内容),则需要先转换HTML编码。
完整的JSP标签应该是这样的,注意页面编码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
一些旧的浏览器也搞砸了编码。您可以使用 HTML 标记
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
此外,如果您使用的是 Eclipse 左键单击文件->属性->签出 ->文本文件编码,则应以 UTF-8 格式记录该文件。