【问题标题】:How to setup Apache tomcat and project to display UTF-8 text?如何设置 Apache tomcat 和项目以显示 UTF-8 文本?
【发布时间】:2014-07-18 04:13:28
【问题描述】:

将我的项目部署到 apache tomcat (v8) 时,在 jsp 和 servlet 中显示文本有问题(导出 .war 文件并复制到 apache tomcat 中的 webapps):

服务器响应后在网络浏览器中显示:

V?i 1 kh?n gi?吗? ph?n bit?t tr?ng t?i v?i th? m?n qua 2 li?n t??ng r?t...nhi ??ng th?i tai:“?ng th?i c?i kh?ng d?m ?? b?ng v??ng ? eo g?ng hay ch?tr?l?c ?? ph?t" nh? t?i,世界杯 l? m?a m?t ng?。仲基?嗯?嗯? xem b?ng ??诉? h?ng x?m xung quanh c?ng cu?n theo nh?p b?ng l?n th? t?i cu?n... ch?n ?i ng?

Apache Tomcat 控制台打印:

V?i 1 kh?n gi?吗? ph?n bit?t tr?ng t?i v?i th? m?n qua 2 li?n t??ng r?t...nhi ??ng th?i tai:“?ng th?i c?i kh?ng d?m ?? b?ng v??ng ? eo g?ng hay ch?tr?l?c ?? ph?t" nh? t?i,世界杯 l? m?a m?t ng?。仲基?嗯?嗯? xem b?ng ??诉? h?ng x?m xung quanh c?ng cu?n theo nh?p b?ng l?n th? t?i cu?n... ch?n ?i ng?

我该如何解决这个问题? 提前谢谢你!

【问题讨论】:

    标签: apache jsp tomcat utf-8


    【解决方案1】:

    确保 server.xml 中 <Connector> 元素上的 URIEncoding 属性设置为 URIEncoding="UTF-8"

    In order to completely switch to using UTF-8, you need to make the following changes:

    在 server.xml 中设置 URIEncoding="UTF-8"。参考:HTTP 连接器、AJP 连接器。 使用默认编码设置为 UTF-8 的字符编码过滤器

    更改所有 JSP 以在其 contentType 中包含字符集名称。

    例如,将 用于通常的 JSP 页面和 XML 语法的页面(也称为 JSP 文档)。 更改所有 servlet 以设置响应的内容类型并将内容类型中的字符集名称包含为 UTF-8。

    使用 response.setContentType("text/html; charset=UTF-8") 或 response.setCharacterEncoding("UTF-8")。 将您使用的任何内容生成库(Velocity、Freemarker 等)更改为使用 UTF-8 并在它们生成的响应的内容类型中指定 UTF-8。

    在您的字符编码过滤器或 jsp 页面有机会将编码设置为 UTF-8 之前,禁用任何可能读取请求参数的阀门或过滤器。

    【讨论】:

    • 我试过了!但它没有正确显示。当我在 Eclipse 上运行时它很好,但是当我导出时它看起来像那样!
    猜你喜欢
    • 2021-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多