Javascript AJAX返回特殊字符

Javascript AJAX return special characters

本文关键字:特殊字符 返回 AJAX Javascript      更新时间:2023-09-26

我一直在尝试从AJAX请求向PHP脚本返回特殊字符。

响应字符串:abcde1'2'3'4'5"6"7–8é9é10'11'12'13ñ14ñ15'16ñ17ñ18 19 20é21é22í23ñ24ñ25'26ñ27ó28ú29'ghij

使用JavaScript警报,它显示:abcde1â2â3â4â5â6â7â8â©9â©10â11â12â13â±14â±15â16â±17â±18 19 20â©21â©22â23â±24â±25â26â±27â³28âº29âfghij

代码如下:

HTML文件:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0      Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/> 
    <title></title>
    <script src="js/phpTest.js" charset="ISO-8859-1" type="text/javascript"></script>
</head>
<body>
    <input id="Submit1" type="submit" value="submit" onclick=" initXHR();return false;" />
</body>
</html>

JS文件:

var xhr;
//;charset=ISO-8859-1
function initXHR() {
    getXHRobj();
    xhr.open('POST', 'phpinfo.php', true);
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr.setRequestHeader("Content-length", 10);
    xhr.setRequestHeader("Connection", "close");
    xhr.send("");
    return false;
}
function getXHRobj() {
    if (window.XMLHttpRequest) {
        xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        xhr = new ActiveXObject("Msxml2.XMLHTTP");
    }
    else {
        throw new Error("Ajax is not supported by this browser");
    }
    xhr.onreadystatechange = function XHRresp() {
        if (xhr.readyState == 4) {
            if (xhr.status >= 200 && xhr.status < 300) {
                document.write("1. " + xhr.responseText);
            }
            else {
                alert(xhr.responseText);
            }
        }
    }
}

和PHP文件:

<?php 
header("Content-Type: text/html;charset=ISO-8859-1");
print "abcde1’2’3’4’5“6”7–8é9é10’11’12’13ñ14ñ15’16ñ17ñ18 19 20é21é22í23ñ24ñ25’26ñ27ó28ú29’fghij";
?>

谢谢,deDogs

看起来您收到的文本有不同的编码样式。

也许这会对你有所帮助。

在提出请求时尝试更改内容类型。

xhr.setRequestHeader("Content-type", "text/richtext");

或者任何适合传输内容的内容。以下链接可能有助于您选择内容类型。

http://www.utoronto.ca/web/htmldocs/book/book-3ed/appb/mimetype.html#text

HTML代码中的字符集可能是ISO-8859-1,但您确定将数据保存在ISO-8859-1中吗?数据可以保存在UTF-8或Windows CP-1252 中