【问题标题】:Jsp form encodingjsp表单编码
【发布时间】:2010-02-17 14:02:07
【问题描述】:

我有一个 jsp 页面(比如说 page1.jsp),它有一个带有 action="page2.jsp" 的 html 表单。 在 page1.jsp 和 page2.jsp 中,我在 head 部分之外有 <%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>,在 head 部分中有 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

如果我以我在 url(get 方法) 中看到的形式写希腊字母,则类似 http://localhost:8080//addProblem.jsp?lastNameForm=%CF%84%CF%85%CE%B8%CF%84%CF%85%CE%B8%CF%84%CF%85&firstNameForm=&eMa ....

和从page2.Jsp一起使用<% out.println(request.getParameter("lastNameForm")); %>

我明白了αÏδαÏδ 我能做什么?

【问题讨论】:

    标签: jsp forms encoding


    【解决方案1】:

    因此,您希望使用 UTF-8 字符编码对 GET 请求参数进行 URL 解码。对于 URL 解码 GET 请求参数,您需要在服务器配置中设置字符编码。如何做到这一点取决于所讨论的服务器,最好是使用关键字"uri encoding" 参考其文档。例如在 Tomcat 中,您需要为 server.xml 中的 HTTP 请求设置 <Connector> 元素的 URIEncoding 属性,另请参见 this 文档:

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

    Bozho 提到的 HttpServletRequest#setCharacterEncoding() 仅适用于参数包含在请求正文中而不是 URL 中的 POST 请求。

    有关更多背景信息和所有解决方案的详细概述,您可能会发现this article 很有用。

    【讨论】:

    • 我正要写关于连接器但有点忙(阅读:懒惰):) (+1)
    • 真正的问题是想要发送一个 gDataRequest,如下所示 code.google.com/intl/el-GR/apis/fusiontables/docs/… 如果在 runUpdate(updateQuery) 函数中 updateQuery 包含希腊字符,尽管服务器配置发生变化,我仍然遇到同样的问题指示。请看一下谢谢
    • 链接后面的代码看起来与您在 topicstart 中显示的完全不同。我也无法将一个与另一个相关联。现在我很困惑,因为你不可能“仍然有同样的问题”。也许你的意思是说你仍然得到那些角色,但现在在不同的地方/情况?那你应该问一个新问题。
    • 我确实问了一个单独的问题,但没有人回答...stackoverflow.com/questions/2271970/…
    【解决方案2】:

    试试

    request.setCharacterEncoding("utf-8");
    

    在你的第二个 jsp 的顶部

    【讨论】:

    • @Argiropoulos Stavros 看到 BalusC 的回答
    猜你喜欢
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多