JSP:表单中输入参数的编码:IE和Firefox之间的区别

时间:2013-11-04 14:53:51

标签: forms internet-explorer jsp firefox utf-8

我有一个带

的JSP
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

在head部分,使用以下代码我尝试将内容设置为UTF-8:

<%@page contentType="text/html;charset=utf-8" %>

response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");

在表单中是输入字段:

<input type="text" value="LastName*" class="input required" name="lastName" id="lastName" />

我现在遇到德国特殊字符的问题。

当我使用request.getParameter("lastName")时,这在FireFox中运行良好,但在IE中则不行。

String encodedLastName = new String(request.getParameter("lastName").getBytes("iso-8859-1"), "UTF-8");

适用于IE,但不适用于Firefox。

我尝试将所有内容更改为iso-8859-1,将accept-charset="UTF-8"添加到表单中,...

现在它比工作更令人猜测。

这只能在服务器(Tomcat)中配置,但为什么浏览器的行为有差异?

谢谢Markus

1 个答案:

答案 0 :(得分:0)

有两个问题相互干扰:

1)使用普通帖子时,我必须通过

进行正确编码
<%@page contentType="text/html;charset=utf-8" %>

并通过

解码正确
String encodedLastName = new String(request.getParameter("lastName").getBytes("iso-8859-1"), "UTF-8");

2)使用jquery时,添加

contentType: 'application/x-www-form-urlencoded; charset=UTF-8'
$ .ajax电话中的