0

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

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

2 回答 2

1

不仅仅是子弹——每个非 ASCII 字符都可能被破坏。

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

于 2012-10-06T15:28:48.243 回答
1

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

request.setCharacterEncoding("UTF-8");

执行这项工作的一个明智的地方是servlet 过滤器

也可以看看:

于 2012-10-08T22:52:33.353 回答