繁体   English   中英

jsp内容中标记文件的双编码UTF-8输出

[英]double encoded UTF-8 output of tag file in jsp content

我有一些用UTF-8正确编码的JSP页面,使用十六进制编辑器,Eclipse和TextPad进行了验证,并带有正确的pageEncoding和contentType属性,分别指定了UTF-8。 在浏览器中,一切看起来也不错。 现在,我需要将一些内容提取到JSP标记文件中,而标记文件本身又被正确编码为UTF-8,并且每个都有一个UTF-8的pageEncoding。 我遵循了Oracle的文档:

http://docs.oracle.com/javaee/5/tutorial/doc/bnama.html#bname

现在的问题是,例如德语变音符在浏览器中以双编码UTF-8出现,而不是“ö”(我看到“ö”)。 如果我在Eclipse中将pageEncoding更改为Windows-1252,它本身似乎可以正确地重新编码文件,并再次使用TextPad和Hex编辑器进行了验证,则浏览器中的一切看起来都很好。

由于使用了标记文件来自动为TagHandlers创建Java源代码,因此我查看了生成的源代码文件,并意识到在pageEncoding UTF-8上,源文件本身已经包含针对德国变音符号的双编码UTF-8。 源文件本身是用UTF-8编码的,如果我在TextPad中查看源文件,我的德语变音符的out.write语句也包含“Ô,这也说明了UTF-8。 如果我在十六进制编辑器中打开源文件,我会看到“Ô字符出现更多的字节,这是使用双编码UTF-8所期望的。

以下是生成的源代码文件中的示例行:

out.write("\t\t\t\t\ttitle=\"Verzeichnis löschen\">\r\n");

我已经更改了Eclipse工作区的一些默认编码选项,但是没有任何效果。 在我看来,在标记文件的源代码生成期间,保留了标记文件本身的UTF-8字符,这与生成JSP文件的源代码的方式相反。 如果我用德语变音符号查看生成的JSP文件的源代码,它们将在TextPad中正确显示为“ö”,它可以识别编码为UTF-8的文件,如果在十六进制编辑器中打开该文件,则可以识别为“Ô。

我在这里有点迷惑,有人对为什么以这种方式处理UTF-8编码的标记文件以及与JSP文件不同的方式有任何想法吗? 我究竟做错了什么?

感谢您的提示!

有些人认为还需提及:

标记文件仍用在编码为UTF-8等的JSP文件中,因此,标记文件产生的内容/编码/“围绕”内容的任何内容仍正确编码为UTF-8。 如前所述,标记文件的内容仅仅是一些语句,这些语句以前在JSP文件中运行良好。

以下是我使用标签文件的声明:

<%@ taglib  tagdir="/WEB-INF/tags/dirListing"
        prefix="dirListing"
%>
[...]
<dirListing:tree dir="${requestScope.dir}" />

您是否尝试过按照此问题的可接受答案中的建议添加pageEncoding指令?

JSP标记的字符集

我确实知道您的问题不是对标记编码的正确解释,但是显然Eclipse对文件进行了错误编码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM