为什么JSP页面编码指令应该是JSP中的第一行?

时间:2011-02-23 10:16:35

标签: java jsp character-encoding

我指的是以下指令

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

我有很多JSP。我在一个已经包含在所有JSP中的公共文件中写了这一行。但这没有帮助,我可以看到浏览器使用的编码与我在上述指令中指定的编码不同。

我不得不手动编写该指令作为解决问题的第一行。

我在this article

中提出的问题的背景下提出这个问题

2 个答案:

答案 0 :(得分:3)

问题是在该指令之前的任何内容都会将其输出写入到浏览器的输出流中 - 并且编码指定该流如何将页面的String内容转换为字节,因此它必须在创建流时设置,之前写入任何内容。

答案 1 :(得分:-1)

Java运行时如何知道该文件是一个JSP,从而编译和处理它,而不是将纯文本推送到客户端?