2010-04-09 18 views
2

我使用jquery和ASP,並使用函數$ .getJSON()獲取SQL數據庫,一些西班牙語中的描述與「acentos」和「tildes」(á,é,í,ó,ú,ñ等)。西班牙語(ó,í等)在IE8中不工作的JQuery標點符號

隨着Chrome 4和FireFox工作正常。問題出在IE8上:對於某些特定的查詢,它會掛起而不會返回結果。如果我用IE替換所有的「ó」和「o」,那麼相同的結果集完美無缺,所以我知道問題在於「acentos」(ó)。

進出口設置與此代碼Ajax調用:

$.ajaxSetup({'beforeSend' : function(xhr) { 
      if (xhr.overrideMimeType) { 
     //FF & Chrome 
       xhr.overrideMimeType('text/html; charset=iso-8859-1'); 
      }else { 
       //IE8 
       //I tried everything here: 
       //xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
       //var obj = new ActiveXObject("MSXML2.XMLHTTP.3.0"); 
       //xhr = new ActiveXObject("Msxml2.XMLHTTP"); 

       //and get ERROR with IE8 in this line: 
       xhr.setRequestHeader('Content-type', 'text/html; charset=iso-8859-1'); 
      } 
              } 
}); 

,然後到的getJSON()的調用與 「acentos」 獲得的描述是這樣的:

function showDialog(idCriterio, codAplica, descTema){ 

$("#dialog-modal").html("Buscando Datos...");//getting data... 

$.getJSON("generarJSONTipos.asp", { idCriterio: idCriterio, codAplica: codAplica}, 

    //callback function 
    function(data){ 
    var textoDialogo; 
    textoDialogo= ""; 

    $("#dialog-modal").html("<span class='tituloOpcion'>"+descTema+"</span><br><br>"); 

    for(i=0;i<data.length;i++) { 
     //tomo el html actual 
     textoDialogo = $("#dialog-modal").html(); 
    //le apendo la descripcion del elemento del array 
    $("#dialog-modal").html(textoDialogo + data[i].descripcion + "<br>"); 
     }//end for 
       }//end callback 
    );//end getJSON 

$("#dialog-modal").dialog({ 
    height: 300, 
    width:450, 
    modal: true 
    }); 

$("#dialog-modal").dialog('open'); 
} 

任何提示將被折衷。我用Google搜索了好幾天,沒有得到對這個問題的答案...:P提前

感謝, 伊格納西奧(阿根廷拉普拉塔)

回答

3

答案很簡單,但我花了好幾天去探索。我在這裏分享它,給每個有同樣問題的人。

的解決方案是指定的在響應對象(ASP)內容的權利的類型或在PHP頭功能:

ASP

Response.ContentType="text/html; charset=iso-8859-1" 

PHP

header("text/html; charset=iso-8859-1"); 

這必須是響應的第一行(我認爲),在生成JSON對象的文件上。任何意見將不勝感激。

謝謝!

Ignacio(阿根廷拉普拉塔)

相關問題