【问题标题】:JSP contentType and pageEncoding not working, I've tried it allJSP contentType 和 pageEncoding 不起作用,我都试过了
【发布时间】:2013-06-10 03:39:52
【问题描述】:

我完全感到困惑。我已经将我的 Apache 和 Tomcat 配置文件、Java Servlet 项目和 JSP 页面全部设置为“UTF-8”以支持西班牙语字符(á、í、ó 等)。我系统地遵循了文档和论坛上的所有指南。我知道我可以使用 Latin1,但由于使用 UTF-8 似乎更容易,但经过 4 天的反复试验,我决定(因为我的 servlet 仅支持西班牙字符)切换到“ISO-8859 -1",实际上大部分都在工作。

唯一的问题是当我右键单击 --> 属性时,只有我的 JSP 页面仍然显示“UTF-8”。页面指​​令和元标记是正确的(ISO-8859-1),但是当我在浏览器上打开它时显示“Windows-1252”。

我不知道为什么会这样。如果我切换到“UTF-8”(所有这些,包括服务器配置、Java 项目等),字符在浏览器中会出现乱码,例如:“puntuación”而不是“puntuación”。

所以,为了解决这个问题......

有谁知道如何正确实现 UTF-8 并使西班牙字符在任何地方都能使用?

有人知道如何将 JSP 页面更改为“ISO-8859-1”吗?现在,属性窗口是 UTF-8,@page(contentType 字符集和 pageEncoding)指令是 ISO-8859-1,浏览器是 Windows-1252

与往常一样,我非常感谢您的耐心和支持。

【问题讨论】:

  • 显然您保存 JSP 文件使用了错误的编码。这是一个编辑器设置,但您在问题中没有告诉任何有关编辑器的信息。你在使用 Eclipse 吗?还是记事本?无论如何,这篇文章应该会有很大帮助:Unicode - How to get the characters right? 请注意,您不想使用 ISO-8859-1!只需修复 UTF-8 问题并一直坚持下去。否则你的网站根本就没有准备好统治世界。
  • @BalusC 乐于称霸世界。实际上我正在使用 NetBeans。你说得对,除了 UTF-8 之外我什么都不想要,但已经 4 天了,我越来越绝望了。
  • 啊 Netbeans,抱歉无法详细说明,因为我没有真正使用/尝试超过 5 分钟。至此,您需要确保已将其配置为使用 UTF-8 保存文件,并且在 system.out.println 控制台中也使用 UTF-8。对于其余部分(JSP/HTTP 响应、HTTP GET 和 HTTP POST),只需按照博客中的说明进行操作即可。

标签: java apache jsp tomcat character-encoding


【解决方案1】:

将“CharsetFilter”类添加到我的项目后,一切正常。

遵循以下准则:How to get UTF-8 working in Java webapps?

PS:我已经完全删除了所有提到的行:

  1. response.setCharacterEncoding("UTF-8");
  2. response.setContentType("text/html;charset=UTF-8");

但我继续使用 JSP:

编码愉快!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 2023-01-08
    相关资源
    最近更新 更多