首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSP页面中的UTF-8编码

问JSP页面中的UTF-8编码
EN

Stack Overflow用户
提问于 2012-10-04 16:33:43
回答 14查看 174K关注 0票数 43

我有一个页面编码为ISO-8859-1的JSP页面。这个JSP页面在一个问答博客中。我想在Q/A帖子中包含特殊字符。

问题是JSP不支持UTF-8编码,即使我把它从ISO-8859-1改成了UTF-8。这些字符(~、%、&、+)正在制造问题。当我张贴这些字符,无论是单独的或与任何字符的组合,它是存储在数据库中的null,当我删除这些字符,同时张贴应用程序,它是正常的。

有谁能提出一些解决方案吗?

EN

回答 14

Stack Overflow用户

发布于 2012-10-04 16:43:40

您应该在应用程序的all layers上使用相同的编码来避免此问题。添加filter来设置编码非常有用:

代码语言:javascript
复制
public void doFilter(ServletRequest request,
                     ServletResponse response,
                     FilterChain chain) throws ServletException {
   request.setCharacterEncoding("UTF-8");
   chain.doFilter(request, response);
}

要仅在JSP页面上设置编码,请将以下行添加到这些页面:

代码语言:javascript
复制
<%@ page contentType="text/html; charset=UTF-8" %>

将您的数据库配置为使用相同的char编码。

如果需要转换字符串的编码,请参见:

我不建议在您的数据库中存储HTML编码的文本。例如,如果需要生成PDF (或HTML以外的任何内容),则需要首先转换HTML编码。

票数 76
EN

Stack Overflow用户

发布于 2012-10-04 20:01:42

完整的JSP标记应该是这样的,还要注意pageEncoding:

代码语言:javascript
复制
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

一些老的浏览器也会把编码搞得一团糟。您可以使用HTML标记

代码语言:javascript
复制
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

此外,文件还应该以UTF-8格式记录,如果您使用的是Eclipse,那么左键单击文件->属性->签出->Text文件编码。

票数 35
EN

Stack Overflow用户

发布于 2015-02-04 13:52:29

我在显示像“ṀŮ”这样的字符时也遇到了问题,.I在我的web.xml中添加了以下内容。

代码语言:javascript
复制
<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <page-encoding>UTF-8</page-encoding>
    </jsp-property-group>
</jsp-config>

这解决了除页眉以外的页面中的问题。我试过很多方法来解决这个问题,但在我的情况下都不起作用。标头was标头jsp页的问题是从另一个jsp包含的。所以给出了导入的编码,这解决了我的问题。

代码语言:javascript
复制
<c:import url="/Header1.jsp" charEncoding="UTF-8"/>

谢谢

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12723339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档