0

我有一個文件notfound.php,它返回英文和泰文可用關鍵字的列表。 它包含錯誤地顯示泰語:

meta http-equiv='Content-Type content='text/html; charset=tis-620'".

泰語語言正確顯示如果我要求使用任何我的瀏覽器頁面,其中泰國輸出調用錯誤地使用JavaScript相同的文件時。

document.getElementById("area").innerHTML=xmlhttp.responseText; 
xmlhttp.open("GET","notfound.php?&mat=" + Math.random(),true); 
xmlhttp.send(); 

此片段是從也含有

meta http-equiv='Content-Type' content='text/html; charset=tis-620」的文件。

返回到「區域」的文本僅在Chrome中正確顯示。

+0

>「輸出泰語錯誤」 它輸出什麼?它應該輸出什麼?我猜這是一個編碼問題。 – Scimonster

+0

而不是ภาษาไทย 是的,只有使用xmlhttp纔會出現的編碼問題 – alberto

+1

難道你不能改變它來返回'utf-8'嗎?根據您的建議, – tia

回答

0
function sendByAJAX() { 
    // get the user text and make it safe for HTTP transmission 
    var userTxt = encodeURIComponent(document.getElementById('userTxt').value); 
    // create the AJAX object 
    var xmlhttp = new XMLHttpRequest(); 
    // assume successful response -- do NOT actually make this assumption in real code 
    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState==4 && xmlhttp.status>=200 && xmlhttp.status<300) { 
     // You'll probably want to do something more meaningful than an alert dialog 
     alert('POST Reply returned: status=[' + xmlhttp.status + 
     ' ' + xmlhttp.statusText + ']\n\nPage data:\n' + xmlhttp.responseText); 
     } 
    } 
    xmlhttp.open('POST', 'http://www.site.com/submit/path'); 
    // here we are overriding the default AJAX type, 
    // which is UTF-8 -- this probably seems like a stupid thing to do 
    xmlhttp.setRequestHeader('Content-type', 
    'application/x-www-form-urlencoded; charset=tis-620;'); 
    xmlhttp.setRequestHeader('User-agent' , 'Mozilla/4.0 (compatible) Naruki'); 
    xmlhttp.send(userTxt); 
} 
+0

更改爲發佈。相同:只在Chrome中正確 – alberto

+0

我試過xmlhttp.overrideMimeType(「text/plain; charset = tis-620」)。它在大多數瀏覽器中都能正常工作,泰文文本現在正確,但在IE9中不起作用,它會報告'overrideMimeType不是此對象的屬性。 – alberto

+0

在這一天花了整個下午。要使xmlhttp正確顯示泰語,所有對服務器的請求(GET/POST不要緊)必須在請求的文件中包含一個php頭文件: header(「Content-type:text/xml; charset = tis-620」)at the very在<?php標籤之後的第一行。 html標籤meta http-equiv =「Content-Type」content =「text/html; charset = tis-620」對我不起作用。 查詢數據庫時,必須使用mysql_query(「set names'tis620'」)。哈里路亞 – alberto