Java 在IE中提交后的奇怪行为角色(在FF中不会发生)
我正在扩展基于Struts2和Struts2 jquery插件的现有代码,但我不认为这是问题的原因 我发现InternetExplorer9有一个奇怪的行为,我不知道在FireFox中没有出现的IE的早期版本中是否也存在同样的问题 我有一个带有一些输入字段的页面,还有一个上传功能,用于在服务器上上传文件。当用户上传文件时,该文件通过表单提交发送到服务器,然后操作返回到同一页面重新加载页面。如果我使用重音字母填充输入框,则在表单提交后重新加载页面时,会显示一个正方形,而不是重音字母,它是&65533;。这只发生在IE中,而不是在FireFox中,在FireFox中,字符与我提交之前的相同 在web.xml和struts.xml文件中,没有JSP的编码配置 字段1 字段2Java 在IE中提交后的奇怪行为角色(在FF中不会发生),java,jsp,struts2,Java,Jsp,Struts2,我正在扩展基于Struts2和Struts2 jquery插件的现有代码,但我不认为这是问题的原因 我发现InternetExplorer9有一个奇怪的行为,我不知道在FireFox中没有出现的IE的早期版本中是否也存在同样的问题 我有一个带有一些输入字段的页面,还有一个上传功能,用于在服务器上上传文件。当用户上传文件时,该文件通过表单提交发送到服务器,然后操作返回到同一页面重新加载页面。如果我使用重音字母填充输入框,则在表单提交后重新加载页面时,会显示一个正方形,而不是重音字母,它是&6553
可能您使用的字符编码与浏览器设置的字符编码不同。例如,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"/>