【问题标题】:Escaping Special Characters Posted to Servlet转义发布到 Servlet 的特殊字符
【发布时间】:2010-10-01 11:41:05
【问题描述】:

我有一个 jsp,其中包含一个发布到 servlet 的表单,当 servlet 从表单接收参数时,井号 (£) 前面带有以下字符 Â。所以£变成了£。是什么原因造成的,我该如何解决?

【问题讨论】:

    标签: java jsp web-applications servlets


    【解决方案1】:

    这听起来很像字符编码问题。包含井号的响应以 UTF-8 字符集发送,但正在以不同的字符集(可能是 ISO-8859-1)进行解释。

    检查您为 JSP 指定的字符编码,如果问题仍然存在,请使用嗅探器调查表单发布的响应,特别是它指定的任何字符集。默认情况下,表单应该使用与提供它的页面相同的字符集,因此您应该能够通过检查页面的字符集来控制它。

    【讨论】:

    • 它将作为 UTF-8 发送并读取为 ISO-8859-1,这可能是服务器上的默认代码页。确保对所有 JSP 页面 (
    • 啊当然——我的错!感谢您指出差异,我已相应地编辑了帖子。
    • 是的,JSP 正在使用 UTF-8,因为我在页面顶部有这一行; ..那么我现在是否必须在 servlet 中使用 request.SetCharacter() 编码来指定我想以 UTF-8 读取?
    【解决方案2】:

    您可以做的是,在从请求对象检索之前,在您的 JSP 页面中,为您的请求设置内容类型。[例如request.setCharacterEncoding("utf-8");]

    现在你可以做 request.getParameter("yourParamName");

    我也遇到了同样的问题并如上所述解决了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-01
      • 2019-01-29
      • 2018-07-16
      • 1970-01-01
      相关资源
      最近更新 更多