【问题标题】:How to use UTF-8 encoding with a java project based on Tomcat [duplicate]如何在基于Tomcat的Java项目中使用UTF-8编码[重复]
【发布时间】:2012-08-29 11:34:20
【问题描述】:

我有一个使用 Tomcat 作为服务器的 java web 项目。我的问题是当我想使用 UTF-8 字符时它不能正确显示它们。

我的意思是当我使用 UTF-8 字符并运行我的 servlet 时,浏览器中的字符不正确。当我想在 xml 页面中使用时,页面无法显示。我用两个 firefox 都做到了和 Internet Explorer,但我没有看到任何变化。

谁能告诉我应该在 Tomcat 和我的项目中做哪些更改来纠正这个问题?

【问题讨论】:

  • 是的。看到我使用 jsp,我想使用用户输入的字符,在我的 servlet 中进行更改和显示。我不能确定他们是否使用 utf-8 .如果他们输入 utf-8,我在下一个向他们展示的内容将不正确。
  • 未正确编码为 UTF-8 的字符最初来自哪里?它们是在 Java 源文件中、在 JSP 中还是由用户输入到 HTML 表单中?还是会影响其中几个来源?
  • 不...不。我想我不能说出我在之前评论中的意思。他们输入的内容当然是 utf-8。但我的问题是如果他们输入任何字符我需要 utf-8 ,比如中文或波斯文,我会有问题。我的意思是我的问题是 utf-8 。我可以接受它,但是当我在我的 servlet 中使用它并将它放入 jsp 和 web 浏览器时它不在正确的形状。我希望你明白我的意思。

标签: java jsp tomcat encoding utf-8


【解决方案1】:

有很多东西要看:

  • jsp 编码应该是 UTF-8(文件的编码 - 在您的 IDE/编辑器中检查)
  • 您必须在 servlet 中发送适当的标头 - response.setCharacterEncoding(..)<%@ page pageEncoding="utf-8" %>
  • 如果你想在URL中使用utf,你需要在tomcat的server.xml中配置URIEncoding="utf-8"
  • 如果您有数据库访问权限,请通过将 utf-8 设置为通信编码,确保您与它正常通信。另外,请确保您的数据库使用的是 utf-8

【讨论】:

    【解决方案2】:

    我通过以下方式解决了这个问题:

    1. 向我的项目添加一个过滤器,以使用以下方法将请求和响应字符串编码为 UTF-8:

      request.setCharacterEncoding("utf-8");
      response.setCharacterEncoding("utf-8");
      
    2. 在 Tomcat 的 server.xml 中配置 URIEncoding="utf-8"

    感谢所有帮助我解决问题的人。

    【讨论】:

      猜你喜欢
      • 2012-06-11
      • 1970-01-01
      • 2012-03-10
      • 2016-12-23
      • 2016-08-31
      • 2011-09-11
      • 2011-09-04
      • 1970-01-01
      • 2013-05-07
      相关资源
      最近更新 更多