我不能在iso-8859-1中发送Firefox的请求

时间:2012-05-04 07:04:04

标签: ajax jsp encoding iso-8859-1

我在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 ...

有些想法???

非常感谢,对不起我的英语!!

1 个答案:

答案 0 :(得分:1)

查看the documentation,似乎没有名为encoding的选项 - 但contentType - 选项上有一个很好的小提示(包括问题的解决方案) :

  

数据将始终使用UTF-8字符集传输到服务器;你必须在服务器端适当地解码它。

所以似乎firefox是正确的,其他浏览器做错了 - 尝试删除encoding - 选项和服务器端转换。