我一直在试图从AJAX请求返回特殊字符到PHP脚本。Javascript AJAX返回特殊字符
作出回应的字符串:abcde1'2'3'4'5“6”7-8é9é10'11'12'13ñ14ñ15'16ñ17ñ181920é21é22í23ñ24ñ25'26ñ27ó28ú29'fghij
使用JavaScript警告,它显示: abcde1â2â3â4â5â6â7â8é9A©10â11â12â13ñ14A±15â16ñ17A±18 19 20A©21A©22Ã23ñ24A±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
在PHP当我打印此字符串 “abcde1'2'3'4'5‘6’7-8é9é10'11'12'13ñ14ñ15'16ñ17ñ181920é21é22í23ñ24ñ25'26ñ27ó28ú29'fghij” 这会被认为是UTF-8或Windows CP-1252?我想,我用明确的字符串回应? – deDogs 2011-06-01 19:10:15
您用来创建PHP代码的编辑器将文件(包括您的特殊字符串)保存到磁盘。你在用什么编辑器?大多数编辑器都有一个设置/首选项/选项来设置字符集的使用/保存/编辑。 – mrk 2011-06-01 19:13:21
谢谢马克,我使用记事本创建html,php和js文件。我尝试将字符串减少为单个字符(ñ),该页面无法正确显示。谢谢 – deDogs 2011-06-01 20:50:56