【问题标题】:Passing special Characters from JSP to Controller [duplicate]将特殊字符从 JSP 传递到控制器 [重复]
【发布时间】:2011-06-21 05:20:01
【问题描述】:

我有一些带有特殊字符的字段。当我通过将表单提交到 Springs Controller 来从 JSP 传递这些字段时,它会显示如下所示。

á - á
é - é
í - Ã
ó - ó
ú - ú
ñ - ñ

我尝试了一些方法,例如在 web.xml 中添加一些编码,

<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

在控制器中编码,

request.setCharacterEncoding("UTF-8");

我仍然无法解决问题。请帮忙。

提前致谢。

注意:我在我们的stackoverflow中检查了一些与这个问题相关的问题,仍然无法找到它。 Character encoding JSP -displayed wrong in JSP but not in URL: "á » á é » é"

【问题讨论】:

  • get还是post查询?你有其他过滤器吗?另见balusc.blogspot.com/2009/05/…
  • @axtavt:非常感谢哥们,这解决了我的问题。我在 web.xml 中添加了过滤器并保留了“发布”方法,一切正常。请发布此答案,因为答案会批准。
  • 我不认为这本身就是一个答案。
  • 嗯...但是建议会有所帮助。不管怎样,谢谢哥们

标签: jsp encoding spring-mvc web.xml


【解决方案1】:

此过滤器仅适用于 POST 请求。对于 GET 请求,您需要在 servletcontainer 级别对其进行配置。以 Apache Tomcat 为例,您需要编辑 /conf/server.xml 中的 &lt;Connector&gt; 条目以添加 URIEncoding="UTF-8" 属性。

<Connector URIEncoding="UTF-8" ... />

手动调用request.setCharacterEncoding("UTF-8"); 无效,因为过滤器已经这样做了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-14
    • 2015-03-26
    • 2018-12-28
    • 1970-01-01
    相关资源
    最近更新 更多