【问题标题】:Bullets in jsp forms not encoded properlyjsp 形式的项目符号未正确编码
【发布时间】:2012-10-05 20:45:10
【问题描述】:

我有一个带有 jsp 表单的网络应用程序。如果用户将项目符号文本从 word 复制到表单中,项目符号将变成奇怪的字符 â¿ 并由表单提交。有没有办法在 jsp.xml 中的表单级别防止这种情况发生?我使用的是 UTF-8 编码

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

【问题讨论】:

  • 你是说在最终用户将它们粘贴到表单中的那一刻,项目符号变成了â¿
  • 不,它们不是,但如果表单更新,那么它们会以这种方式重新显示
  • 您最初的问题另有暗示,但这将是语言障碍。我已经发布了如何解决这个问题的具体答案。

标签: jsp unicode character-encoding


【解决方案1】:

您需要将请求正文字符编码设置为相同从请求正文中提取第一个请求参数之前,否则它将是依赖于 servletcontainer 的默认值,通常是 ISO 8859 -1.

request.setCharacterEncoding("UTF-8");

servlet filter 是执行这项工作的明智之选。

另见:

【讨论】:

    【解决方案2】:

    不仅仅是项目符号 - 每个非 ASCII 字符都可能被破坏。

    您的页面以 UTF-8 编码输出,但您没有将输入处理为 UTF-8。不幸的是,Servlet 规范,在它的许多严重错误中,要求使用 ISO-8859-1 处理输入。完全改变这种行为是一种痛苦,并且在不同的 servlet 容器中有所不同。 Some Tomcat-focused background.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-25
      • 2013-12-04
      • 2017-12-11
      • 2012-07-12
      • 2019-07-13
      • 2014-06-26
      • 2012-05-17
      • 1970-01-01
      相关资源
      最近更新 更多