Forms JSP:form中输入参数的编码:IE和Firefox的区别

Forms JSP:form中输入参数的编码:IE和Firefox的区别,forms,internet-explorer,jsp,firefox,utf-8,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"

我有一个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");

响应。setCharacterEncoding(“UTF-8”);
setCharacterEncoding(“UTF-8”);
表单中有一个输入字段:

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

我现在遇到了德语特殊字符的问题

当我使用
request.getParameter(“lastName”)
时,这在FireFox中可以正常工作,但在IE中不行

String encodedLastName=新字符串(request.getParameter(“lastName”).getBytes(“iso-8859-1”),“UTF-8”)

适用于IE,但不适用于Firefox

我试图将所有内容更改为
iso-8859-1
,在表单中添加了
accept charset=“UTF-8”

现在更多的是猜测而不是工作

这只能在服务器(Tomcat)中配置,但为什么浏览器的行为会有所不同


谢谢,马库斯有两个问题相互影响:

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调用中。

IE中实际发生了什么?你在iso-8859-1中得到了正确的字符,还是你得到了问号?在Firefox中错误的字符显示为白色?在黑钻石上,在IE中,错误的字符显示为两个字符(!),大写字母a和~在顶部(在ISO 8859-1表中为C3),特殊字符,例如u(ü;)为1/4(在ISO 8859-1表中为BC)。如果我在浏览器中切换到另一种编码(8859-1),行为也是一样的。基本上,您只需要JSP和HTML元标记来匹配编码。您在JSP的第一行上有吗?是的,如上所述,我有确定,我必须将我的问题更改为一些jquery问题:当我禁用javascript并使用和字符串encodedLastName=newString(request.getParameter(“lastName”).getBytes(“iso-8859-1”),“UTF-8”);这在IE和firefox中运行良好。但是当启用javascript时,jsp会使用AJAX调用,比如$.AJAX({type:'POST',url:jqm('.validForm').attr('action'),data:jqm('.validForm”).serialize(),success:function(data){$('.popupraper').hide().html(data).fadeIn(1500);});我认为问题在于.serialize()函数中的不同行为。