【问题标题】:Character encoding in tomcattomcat中的字符编码
【发布时间】:2011-06-17 01:06:35
【问题描述】:

我在 Tomcat 6.0 中遇到编码问题。在我指定的所有 jsp 页面上

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

pageEncoding="UTF-8" 在页面指令中。但是当我通过 get 或 post 方法传递参数(西里尔字母)时,我输入了另一个符号。我已经阅读了要在发布方法中解决此问题的文章,我必须设置 request.setCharacterEncoding("UTF-8"); 这对我很有帮助。此外,我已经阅读了要在 get 方法中修复它,我必须在 server.xml 的连接器元素中指定 URIEncoding="UTF-8"。它也确实适用于 get 方法,但前提是我不指定 request.setCharacterEncoding("UTF-8");。因此,如果我同时指定它们,则只有 post 方法的参数传递效果很好。 我怎样才能用 get 方法做到这一点?

编辑 当我使用表单通过 GET 方法传递参数时,server.xml 中的 URIEncoding 有效。但是,如果我在 servlet 中使用 response.senRedirect()(也使用 GET 方法)方法,它会用另一个符号修改西里尔文参数

已解决 使用 java.net.URLEncoder 解决了这个问题。每个参数都必须由URLEncoder.encode(par, "UTF-8") 编码。然后它会正确显示。

【问题讨论】:

  • 你能安装 Firefox/Firebug 并在此处粘贴一些 HTTP 请求/响应标头吗?
  • 我认为您混淆了来自服务器的内容和来自服务器的内容。尝试 Accept-Encoding HTTP 标头。

标签: tomcat character-encoding


【解决方案1】:

我通过在 tomcat server.xml 的 http 和 ajp 连接器中添加 URIEncoder=UTF-8 解决了这个问题。除此之外什么也没做。我正在使用 Spring、apache/tomcat。

【讨论】:

    【解决方案2】:

    我也认为你应该只使用 JSP page 指令而不是meta 标签。我不能说这是否会导致问题,但这是不必要的。

    我发现以下有用:

    UTF-8: The Secret of Character Encoding

    The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

    【讨论】:

      猜你喜欢
      • 2012-06-20
      • 1970-01-01
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-06
      • 1970-01-01
      • 2013-04-21
      相关资源
      最近更新 更多