JSP 中的页面编码

Posted

技术标签:

【中文标题】JSP 中的页面编码【英文标题】:Page Encoding in JSP 【发布时间】:2011-04-05 12:04:54 【问题描述】:

指定页面编码的最佳方式是什么 - 使用这样的页面指令?

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

还是直接放在meta标签里?

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

Eclipse 默认同时使用两者,这是否意味着我需要两者?

【问题讨论】:

【参考方案1】:

你不需要两者。其实&lt;%@ page pageEncoding="utf-8" %&gt;就够了。

【讨论】:

请注意,这意味着每个页面渲染在开始时都会运行此指令。引用JSP spec(...) for this purpose, they (the pageEncoding setting) should appear at the beginning of the page (see Section JSP.4.1) 因此,在 web.xml 中为所有 JSP 定义它通常是有意义的。【参考方案2】:

如果您需要使用 UTF-8,您还需要为您的连接 url 以及请求和响应设置字符集。

【讨论】:

【参考方案3】:

我认为你需要两者,不是吗?我的猜测是 page 指令 告诉 Container 使用指定的编码编译 JSP,而 meta 标签 告诉 browser 页面是如何编码的。

【讨论】:

页面指令也隐式设置了相应的响应头。

以上是关于JSP 中的页面编码的主要内容,如果未能解决你的问题,请参考以下文章

Jsp页面中的中文乱码问题解决

JSP页面中的中文乱码问题

怎样设置Myeclipse的jsp页面为默认utf-8编码

JSP页面中中文乱码问题

JSP页面设置编码(转,不知出处)

JavaWeb02-JSP数据交互