2017-03-01 19 views
0

$ .ajax(javascript)在頁面上發送錯誤的字符集。 Page charset是ISO-8859-2,它是永久的。 $ .ajax忽略xhr請求。我需要ěščřžýáíé結果,而不是ÄĹĄÄĹŞýåĂĂŠAJAX中的字符集

UNESCAPE,逃生,encodeURIComponent方法(),decodeURIComponent()都不盡如人意

代碼:

    $.ajax({ 
         url: 'http://url/', 
         type: 'POST', 
         contentType: 'application/x-www-form-urlencoded; charset=iso-8859-2', 
         beforeSend: function(jqXHR) { 
          jqXHR.overrideMimeType("application/x-www-form-urlencoded; charset=iso-8859-2;"); 
         }, 
         data: { textarea:textarea } 
        }); 
+1

您的服務器的響應是否也發送了正確的響應標頭字符集?例如,您可以在「網絡」選項卡中檢入Chrome的檢查器。 –

+0

Network選項卡中的請求標頭是正確的,正如我在ajax中定義的。奇怪的。 – Ondrashek

+0

頁面的charset是什麼?變量'textarea'中是什麼?如果這是來自實際的'textarea'元素的文本,它將繼承文檔的字符集;請參閱[此問題]的答案(http://stackoverflow.com/questions/25665073/how-can-i-show-following-text-in-html-textarea)瞭解一些變通方法。 –

回答

0

嘗試設置內容類型如下:

contentType:"application/x-javascript; charset:ISO-8859-1" 

UPDATE contentType是您要發送的數據的類型,所以application/json; charset = utf-8是一個常見的應用程序/ x-www-form-urlencoded; charset = UTF-8,這是默認值。我們要做的是將內容類型設置爲ISO-8859-1

+0

您的代碼沒有變化。 – Ondrashek