我有一个带有jsp表单的网络应用程序。如果用户将项目符号中的项目符号文本复制到表单中,则项目符号会变成奇怪的字符•并由表单提交。有没有办法在jsp中的表单级别阻止这种情况。我使用的是UTF-8编码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
答案 0 :(得分:1)
这不仅仅是项目符号 - 每个非ASCII字符都可能被破坏。
您的页面以UTF-8编码输出,但您没有将输入视为UTF-8。不幸的是,Servlet规范在其许多严重错误中要求使用ISO-8859-1处理输入。完全改变该行为是一种痛苦,并且在不同的servlet容器之间存在差异。 Some Tomcat-focused background
答案 1 :(得分:1)
您需要在从请求主体中提取第一个请求参数之前将请求主体字符编码设置为相同的,否则它将是servletcontainer依赖的默认值,通常是ISO 8859 -1
request.setCharacterEncoding("UTF-8");
执行此工作的理智之地是servlet filter。