html元字符集不工作:设置UTF-8时获取ISO-8859-1

时间:2015-10-07 03:13:49

标签: html jsp character-encoding

在我的页面的头部,我有以下代码:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

但我收到了以下回复标题:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 1885
Date: Wed, 07 Oct 2015 03:02:50 GMT

我的页面显示æ£åœ¨ä¸Žå...¬ä¼-å·å¯¹è¯而不是中文。

你知道为什么吗?

更新

我刚刚学会了一些文档编码(在浏览器中):确定文档编码的简化优先级(在浏览器中)是:(1)浏览器设置,(2)字节顺序标记(浏览器能够自行确定编码) ),(3)HTTP标题,(4)元标记,(5)最佳猜测。

我猜元标记的charset属性不会影响HTTP标头。

那么令我困惑的是HTTP标头会产生什么影响。如何在HTTP标头中设置charset = utf-8?

============================附加代码================= =========

以下是JSP页面中的HEAD代码:

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <meta http-equiv="X-UA-Compatible"content="IE=9; IE=8; IE=7; IE=EDGE" />
        <title>微信公众号</title>
        <!--讨论区滚动条begin-->
        <link rel="stylesheet" type="text/css" href="<%= basePath %>Resource/css/jscrollpane1.css" />
        <script src="<%= basePath %>Resource/js/common/jquery-1.8.0.min.js" type="text/javascript"></script>
        <!-- the mousewheel plugin -->
        <script type="text/javascript" src="<%= basePath %>Resource/js/common/jquery.mousewheel.js"></script>
        <!-- the jScrollPane script -->
        <script type="text/javascript" src="<%= basePath %>Resource/js/common/jquery.jscrollpane.min.js"></script>
        <script type="text/javascript" src="<%= basePath %>Resource/js/common/scroll-startstop.events.jquery.js"></script>
        <!--讨论区滚动条end-->
        <script type="text/javascript" src="<%= basePath %>Resource/js/front/talk.js"></script>
    </head>

Servlet代码很简单:

@WebServlet(name = "InitTalkServlet")
public class InitTalkServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //        设置编码
        request.setCharacterEncoding("UTF-8");

//        页面跳转
        request.getRequestDispatcher("/WEB-INF/JSP/FRONT/talk.jsp").forward(request,response);
    }
}

1 个答案:

答案 0 :(得分:0)

我找到了一个决议:

  

使用Sublime,File |打开JSP文件使用编码保存| UTF-8用   BOM。

但我仍然不知道它为什么会起作用。