Java 在IE中提交后的奇怪行为角色(在FF中不会发生)

Java 在IE中提交后的奇怪行为角色(在FF中不会发生),java,jsp,struts2,Java,Jsp,Struts2,我正在扩展基于Struts2和Struts2 jquery插件的现有代码,但我不认为这是问题的原因 我发现InternetExplorer9有一个奇怪的行为,我不知道在FireFox中没有出现的IE的早期版本中是否也存在同样的问题 我有一个带有一些输入字段的页面,还有一个上传功能,用于在服务器上上传文件。当用户上传文件时,该文件通过表单提交发送到服务器,然后操作返回到同一页面重新加载页面。如果我使用重音字母填充输入框,则在表单提交后重新加载页面时,会显示一个正方形,而不是重音字母,它是&6553

我正在扩展基于Struts2和Struts2 jquery插件的现有代码,但我不认为这是问题的原因

我发现InternetExplorer9有一个奇怪的行为,我不知道在FireFox中没有出现的IE的早期版本中是否也存在同样的问题

我有一个带有一些输入字段的页面,还有一个上传功能,用于在服务器上上传文件。当用户上传文件时,该文件通过表单提交发送到服务器,然后操作返回到同一页面重新加载页面。如果我使用重音字母填充输入框,则在表单提交后重新加载页面时,会显示一个正方形,而不是重音字母,它是&65533;。这只发生在IE中,而不是在FireFox中,在FireFox中,字符与我提交之前的相同

在web.xml和struts.xml文件中,没有JSP的编码配置

字段1 字段2
可能您使用的字符编码与浏览器设置的字符编码不同。例如,UTF-8 unicode与ISO-8859-1有一些不同。国外网站更糟糕。通常浏览器可以自动检测到它,但它似乎并不总是起作用

转到“查看”菜单>“字符编码”并尝试其中的选项,直到找到正确显示的选项

<%page contentType="text/html" pageEncoding="UTF-8"%>

我在OTN论坛的URL上找到了一个解决方案

正如所建议的,我已经在web.xml中添加了这个

这是我的JSP页面

<jsp:directive.page contentType="text/html;charset=utf-8"/>

因此,它在IE和FF中正常工作。

您需要在Web应用程序的整个操作链中保留相同的字符集,从从从客户端发送请求和从服务器接收请求,到从服务器发送响应和从客户端接收响应

使用web.xml中的UTF-8编码,除了服务器接收GET方法的请求外,其他步骤都可以,您需要配置应用程序服务器连接器以使用UTF-8

请注意,您的数据库也应该是UTF-8,而不像我在意大利的许多案例中看到的WE81ISO8859P1或P15

UTF-8拥有你所需要的一切,只要在任何地方使用它,你就会没事的

作为一个重要注意事项,请记住在

从字节数组创建新字符串

而不是新的StringmyByteArray

使用新的StringmyByteArray,UTF-8

从字符串获取字节数组时:

而不是myString.getBytes

使用myString.getBytesUTF-8


谢谢你的帮助。我试着把它放在我的案子上,但不起作用。
<jsp-config>  
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <page-encoding>utf-8</page-encoding>
    </jsp-property-group> 
</jsp-config>
<jsp:directive.page contentType="text/html;charset=utf-8"/>