我在Java EE中有一个应用程序,我的数据库在ISO-8859-1中,因此我需要在ISO-8859-1中执行jsp编码...(我的所有页面都在iso-8859-1中)
我有一个带有javascript代码的jsp,它会对Struts操作发出请求。
这是我的js代码。
$.ajax({
type:'GET',
encoding:'iso-8859-1',
contentType: 'text/html;charset=ISO-8859-1',
url: xUrl,
success: function(){
$("#MensajeOk").attr('style','display:block');
$("#MensajeOk").delay(10000).slideUp(1000);
}
});
使用IE和Chrome都是正确的,因为它在ISO-8859-1中进行请求编码,但Firefox以UTF-8编码请求,这对我来说是一个问题,因为在服务器端我需要ISO-8859- 1和FF有一些字符比我无法恢复。
mi form is
<html:form action="/action.do" acceptCharset="iso-8859-1">
<input type="text" name="title">
我的java代码是
new String((request.getParameter("title")+"").getBytes("iso-8859-1"),"iso-8859-1"));
有了它,我可以使用IE和Chome恢复文本,但是使用Firefox失败了。
其他选项将通过encodeURI('data')以UTF-8编码发送请求,但在服务器端,我无法将文本从UTF-8转换为ISO-8859-1 ...
有些想法???
非常感谢,对不起我的英语!!
答案 0 :(得分:1)
查看the documentation,似乎没有名为encoding
的选项 - 但contentType
- 选项上有一个很好的小提示(包括问题的解决方案) :
数据将始终使用UTF-8字符集传输到服务器;你必须在服务器端适当地解码它。
所以似乎firefox是正确的,其他浏览器做错了 - 尝试删除encoding
- 选项和服务器端转换。